1. 程式人生 > >演算法訓練 反置數 C語言實現

演算法訓練 反置數 C語言實現

演算法訓練 反置數 題目: 問題描述
  一個整數的“反置數”指的是把該整數的每一位數字的順序顛倒過來所得到的另一個整數。如果一個整數的末尾是以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;
}