C语言 · 反置数

算法训练 反置数  
时间限制:1.0s   内存限制:512.0MB
    
问题描述
  一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。
  输入格式:输入只有一行,包括两个整数,中间用空格隔开。
  输出格式:输出只有一行,即相应的结果。
  输入输出样例
样例输入
435 754
样例输出
199
 
作者注释:
学会了几个函数:头文件:stdlib.h

itoa(n,&x,10)——数值转换成字符串函数。
其中n,表示的是一个数值;&x表示的是转换后存放字符串的指针;10表示基于10进制。

atoi函数:将字符串转为integer类型;
atof函数:将字符串转为double类型;

 1 #include<stdio.h> 
 2 #include<string.h>
 3 #include<stdlib.h>
 4 #include<math.h>
 5 int fanzhi(int x){
 6     char c[50];
 7     itoa(x,c,10);//将参数x十进制的基础上转成字符串 
 8     int answer=0;
 9     int len = strlen(c);//获取字符串的长度 
10     for(int i=len-1;i>=0;i--){
11         if(c[i]!='0'){
12             answer += (c[i]-'0')*(int)pow(10,i);
13         }
14     }
15     return answer;
16 }
17 int main(){
18     int a,b;
19     scanf("%d%d",&a,&b);
20     printf("%d",fanzhi(fanzhi(a)+fanzhi(b)));
21     return 0;
22 }
原文地址:https://www.cnblogs.com/panweiwei/p/6568223.html