P1553 數字反轉(公升級版)

2021-07-31 23:12:38 字數 1118 閱讀 1712

給定乙個數,請將該數各個位上數字反轉得到乙個新數。

這次與noip2011普及組第一題不同的是:這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調;小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分;分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母;百分數的分子一定是整數,百分數之改變量字部分。整數新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零;小數新數的末尾不為0(除非小數部分除了0沒有別的數,那麼只保留1個0);分數不約分,分子和分母都不是小數(約分滴童鞋抱歉了,不能過哦。輸入資料保證分母不為0),本次沒有負數。

-輸入1.00 ,輸出1.0

-輸入0000000000,輸入0.

#include#include

using namespace std;

string turn_zhengshu(string word);

string dele0(string word);

int main()

else

if(word[i]=='/')

else

if(word[i]=='%')

else

sign=1;

} ///開始反轉

string fanzhuan,qian,hou;

if(sign==1)

qian=turn_zhengshu(qian);

i++;

while(isize())

hou=turn_zhengshu(hou);

hou=dele0(hou);

if(sign==2) cout<"."

if(sign==3) cout<"/"

if(sign==4)

if(len==-1) newstr+='0';

while(len!=-1)

return newstr;

}string dele0(string word) //刪除末尾的0 但不反轉

if(len==-1)

for(int j=0;j<=len;j++)

return newstr;

}

P1553 數字反轉(公升級版)

題目鏈結 題目描述 給定乙個數,請將該數各個位上數字反轉得到乙個新數。這次與noip2011普及組第一題不同的是 這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調 小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分 分數反轉是把分母的數反轉,再把分子的數反轉,...

P1553 數字反轉(公升級版)

題目描述 給定乙個數,請將該數各個位上數字反轉得到乙個新數。這次與noip2011普及組第一題不同的是 這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調 小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分 分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子...

P1553 數字反轉(公升級版)

題目描述 給定乙個數,請將該數各個位上數字反轉得到乙個新數。這次與noip2011普及組第一題不同的是 這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調 小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分 分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子...