WY30. 数字翻转
描述
对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:输入描述
输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。输出描述
输出rev(rev(x) + rev(y))的值示例1
输入:
123 100
输出:
223
C 解法, 执行用时: 1ms, 内存消耗: 360KB, 提交时间: 2018-10-09
#include<stdio.h> int rev(int X){ int a=X,m;int i,j,k,l; if(a/1000!=0){ l=a/1000; j=a%1000/100; k=(a%1000-j*100)/10; i=a-l*1000-j*100-k*10; m=i*1000+k*100+j*10+l; return m; } else if(a/100!=0) { i=a/100; j=a%100/10; k=a%100-j*10; m=k*100+j*10+i; return m; } else if(a/10!=0) { j=a/10; k=a-j*10; m=k*10+j; return m; } else if(a/1!=0) {return a; } } int main(){ int x,y,c,d; scanf("%d %d",&x,&y); d=rev(x)+rev(y); c=rev(d); printf("%d\n",c); }
C 解法, 执行用时: 1ms, 内存消耗: 364KB, 提交时间: 2020-11-27
#include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> int rev(int a) { int i=0; int m=a; for(;m/10>0;i++)m/=10; m=0; for(;i>0;i--) { m+=(a%10)*(int)pow(10,i); a/=10; } m+=a%10; return m; } int main() { int x,y; int n; scanf("%d %d",&x,&y); n=rev(rev(x)+rev(y)); printf("%d",n); return 0; }