資料的反轉

2021-09-18 07:10:57 字數 1707 閱讀 5734

題目描述

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

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

輸入格式:

乙個數s

輸出格式

乙個數,即s的反轉數

輸入樣式#1輸出樣例#1

5087462 2647805

輸入樣例#2輸出樣例#2

600.084 6.48

輸入樣例#3輸出樣例#3

700/27 7/72

輸入樣例#4輸出樣例#4

8670% 768%

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

else

b=1;

} switch(b)

printf("%c",a[c]);

for(i=z-1;i>c;i--)

break;

case 3:

for(i=c-1;i>=0;i--)

printf("%c",a[c]);

for(i=z-1;i>c;i--)

break;

case 4:

for(i=c-1;i>=0;i--)

printf("%c",a[c]);

break;

}

}

(1)先對輸入格式進行規定。

(2)尋找出最後一項的下標。

(3)確定字串的資料型別:整數,小數,分數,百分數。迴圈進行尋找它的資料特徵,找到之後對特徵項的下標進行儲存(將下標賦給int c)。例如:在迴圈的過程中找到了』/』,就可確定資料為分數型別,儲存其下標。

(4)進入switch語句:

情況1:整數

–>將字串整體逆序輸出,便可得到結果。

情況2:小數

–>將字串分為三部分輸出:(通過前面標記的特徵項來進行分割)

第一部分:將字元』.『前的數字進行逆序輸出,考慮到若出現0,則不輸出。(從a[c-1]項直至第a[0]項)

第二部分:將字元』.『輸出。(輸出a[c]項)

第三部分:將字元』.『後的數字同樣進行逆序輸出,遇到0則不輸出。(從a[z-1]項直至a[c+1]項)

情況3:分數

–>將字串分為三部分輸出:(通過前面標記的特徵項來進行分割)

其做法同小數一樣,只是特徵項有所不同。其實也可將兩者劃分在一起,減少**量, 縮短執行時間。

情況4:百分數

–>將字串分為兩部分進行輸出:

將最後一項單放出來,先將前面的a[0]項直至a[z-2]項逆序輸出,遇到最後一項為0不輸出,最後輸出字元』%』.

陣列的反轉

題目 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例1 輸入 123 輸出 321 示例2 輸入 123 輸出 321 原理 利用棧的先進後出的原理,先將乙個乙個數壓入棧中,出棧同時組合成所需結果。注意 範圍限制以及符號判定等細節 include include include incl...

陣列的反轉

陣列是相同資料型別 陣列型別可以為任意型別 的 有序 集合 陣列也是物件,陣列元素相當於物件的成員變數 陣列長度是確定的,不可變的。如果越界,則報 arrayindexoutofbounds public class demo11 printarrays array system out.print...

單詞的反轉

刷題,求單詞的翻轉。利用到了程式設計珠璣上的翻手法則。主要思路是先將字串整體翻轉,再在單詞內部翻轉 先單詞翻轉,在整體翻轉貌似也行 include include include char string reverse char first,char last return ptr char str...