很久以前,碰到过一道题,叫逆序输出一个多位数,记得当时是用了一个比较麻烦的方法才勉强做出来。最近无意中又碰到了这道题,于是稍微总结了以下三种自认为是很简单的方法来实现。
1.对一个多位数取余数,将其拆分成个位,十位,百位等等,然后按低位依次输出。
这种方法仅适用于逆序输出数字,不能逆序输出字符串,以下两种则都适用。
2.将多位数或字符串存放在一个数组中,然后逆序输出数组。
3.利用递归逆序输出多位数或字符串。
4.对于第一种逆序输出多位数的情况,只能一位一位逆序输出,还有一种方法可以先得到整个逆序数,再将逆序数输出。
1.对一个多位数取余数,将其拆分成个位,十位,百位等等,然后按低位依次输出。
#include<stdio.h> int main() { int num; scanf("%d",&num); do { printf("%d",num%10); num/=10; }while(num); return 0; }
这种方法仅适用于逆序输出数字,不能逆序输出字符串,以下两种则都适用。
2.将多位数或字符串存放在一个数组中,然后逆序输出数组。
#include<stdio.h> #include<string.h> int main() { char str[100]; int i,len; gets(str); len=strlen(str); for(i=1;i<=len;i++) printf("%c",str[len-i]); return 0; }
3.利用递归逆序输出多位数或字符串。
#include<stdio.h> #include<conio.h> void change() { char c; if((c=getchar())!='\n') change(); putchar(c); } int main() { change(); return 0; }
4.对于第一种逆序输出多位数的情况,只能一位一位逆序输出,还有一种方法可以先得到整个逆序数,再将逆序数输出。
#include<stdio.h> int main() { int n,t,sum=0; cin>>n; while(n) { t = n%10; sum = sum*10+t; n/=10; } cout<<sum<<endl; return 0; }