演算法訓練 反置數 C語言實現
阿新 • • 發佈:2019-01-08
演算法訓練 反置數
題目:
問題描述
一個整數的“反置數”指的是把該整數的每一位數字的順序顛倒過來所得到的另一個整數。如果一個整數的末尾是以0結尾,那麼在它的反置數當中,這些0就被省略掉了。比如說,1245的反置數是5421,而1200的反置數是21。請編寫一個程式,輸入兩個整數,然後計算這兩個整數的反置數之和sum,然後再把sum的反置數打印出來。要求:由於在本題中需要多次去計算一個整數的反置數,因此必須把這部分程式碼抽象為一個函式的形式。
輸入格式:輸入只有一行,包括兩個整數,中間用空格隔開。
輸出格式:輸出只有一行,即相應的結果。
輸入輸出樣例
樣例輸入
435 754
樣例輸出
199
分析:
比較簡單就不註釋了...
程式碼在此:
一個整數的“反置數”指的是把該整數的每一位數字的順序顛倒過來所得到的另一個整數。如果一個整數的末尾是以0結尾,那麼在它的反置數當中,這些0就被省略掉了。比如說,1245的反置數是5421,而1200的反置數是21。請編寫一個程式,輸入兩個整數,然後計算這兩個整數的反置數之和sum,然後再把sum的反置數打印出來。要求:由於在本題中需要多次去計算一個整數的反置數,因此必須把這部分程式碼抽象為一個函式的形式。
輸入格式:輸入只有一行,包括兩個整數,中間用空格隔開。
輸出格式:輸出只有一行,即相應的結果。
輸入輸出樣例
樣例輸入
435 754
樣例輸出
199
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int fun (int n) { int s =0; char str[20]; int len; int i; itoa(n,str,10); len = strlen(str); for(i = len-1; i >= 0; i --){ s += (str[i]-48)*(int)pow(10,i); } return s; } int main () { int a,b; scanf("%d %d", &a, &b); printf("%d",fun(fun(a)+fun(b))); return 0; }