洛谷P1553 數字反轉(公升級版) C語言

2021-10-12 07:21:02 字數 2514 閱讀 3671

內含打表補丁,包括修復內容:

0、000.***、00%、0/***類。

/*以下為原題面,僅供參考

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

這次與noip2011普及組第一題不同的是:

這個數可以是小數,分數,百分數,整數。整數反轉是將所有數字對調;

小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分;

分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母;百分數的分子一定是整數,百分數只改變量字部分。

整數新數也應滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數的最高位數字不應為零;小

數新數的末尾不為0(除非小數部分除了0沒有別的數,那麼只保留1個0);

分數不約分,分子和分母都不是小數(約分滴童鞋抱歉了,不能過哦。輸入資料保證分母不為0),本次沒有負數。

題目描述

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

這次與noip2011普及組第一題不同的是:這個數可以是小數,分數,百分數,整數。

整數反轉是將所有數字對調。

小數反轉是把整數部分的數反轉,再將小數部分的數反轉,不交換整數部分與小數部分。

分數反轉是把分母的數反轉,再把分子的數反轉,不交換分子與分母。

百分數的分子一定是整數,百分數只改變量字部分。

輸入格式

乙個數 ss

輸出格式

乙個數,即 ss 的反轉數

輸入輸出樣例

輸入 #1複製

5087462

輸出 #1複製

2647805

輸入 #2複製

600.084

輸出 #2複製

6.48

輸入 #3複製

700/27

輸出 #3複製

7/72

輸入 #4複製

8670%

輸出 #4複製

768%

說明/提示

所有資料:25%s是整數,不大於20位

25%s是小數,整數部分和小數部分均不大於10位

25%s是分數,分子和分母均不大於10位

25%s是百分數,分子不大於19位

(20個資料)

資料保證:

對於整數翻轉而言,整數原數和整數新數滿足整數的常見形式,即除非給定的原數為零,否則反轉後得到的新數和原來的數字的最高位數字不應為零。

對於小數翻轉而言,其小數點前面部分同上,小數點後面部分的形式,保證滿足小數的常見形式,也就是末尾沒有多餘的 00

(小數部分除了 00 沒有別的數,那麼只保留 11 個 00。若反轉之後末尾數字出現 00,請省略多餘的 00)

對於分數翻轉而言,分數不約分,分子和分母都不是小數。輸入的分母不為0。與整數翻轉相關規定見上。

資料不存在負數。*/

#include

#include

void

reverse

(char

* a,

int startloc ,

int endloc)

;//主操作——求逆

void

ll0delete

(char

*str,

char ch,

int startloc)

;void swap (

char

*a ,

char

*b )

;void

ll0delete2

(char

*str,

char ch,

int endloc)

;int

main()

if( a[i]

=='.')}

if(i==size)

if(a[0]

=='\0'

||a[0]

=='.'

||a[0]

=='%'

||a[0]

=='/'

)printf

("0");

puts

(a);

return0;

}void

reverse

(char

*a ,

int startloc ,

int endloc)

ll0delete

(a,'0'

,startloc );}

void

ll0delete

(char

*str,

char ch,

int startloc)

}void

ll0delete2

(char

*str,

char ch,

int endloc)

}void swap (

char

*a ,

char

*b )

//用前匹配資料型別(使用編譯器的替換功能)

洛谷P1553 數字反轉(公升級版)

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

洛谷 P1553 數字反轉(公升級版)

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

洛谷 P1553 數字反轉(公升級版)

使用string中的reverse,find first not of函式 翻轉函式。把string型別的字串翻轉一次 常用的格式 reverse str.begin str.end 返回在字串中首次出現的不匹配str任何字元的首字元索引 當然這個函式有很多用法,這裡去除前導0的語句是 str st...