数字逆转的几种方式,(略有区别)

来源:互联网 发布:东北师范大学知乎 编辑:程序博客网 时间:2024/05/17 06:35

第一种方式:

int main(){int n;int res = 0;scanf("%d",&n);while(n){res = res*10+n%10;n/=10;}printf("逆转后的数字是%d\n",res);return 0;} 

第二种方式:

int main(){int n;int res = 0;scanf("%d",&n);while(1){res = res*10+n%10;n/=10;if(n==0){break;}}printf("逆转后的数字是%d\n",res);return 0;} 

第三种方式:

int main(){int n;int res = 0;scanf("%d",&n);for(;n;n/=10){res = res*10+n%10;}printf("逆转后的数字是%d\n",res);return 0;} 

第四种方式(比较不常用此方式)

#include<stdio.h>#include<stdlib.h>//1234567//7654321//1234 1000+200+30+4//4321 4000+300+20+1 //12345   1,2,3,4,5//12345/1%10  5//12345/10%10  4//12345/100%10  3//12345/1000%10  2//12345/10000%10  1  或者直接12345/10000就是1 int get10n(int n){int res = 1;for(int i=0;i<n;i++)//计数器{res*=10; } return res;}int main(){int num;scanf("%d",&num);int numA = num;printf("要逆转的数字:%d\n",num);int wei = 0;while(1){wei++;num/=10;if(num==0){break;}} printf("此数的位数是:%d\n",wei);int res = 0;//记录最终结果 for(int i=0;i<wei;i++){int nowwei  = 0;//现在位上的阿拉伯数字 nowwei = numA/get10n(i)%10;printf("%d\n",nowwei);res+=nowwei*get10n(wei-1-i);}printf("转换以后的结果:%d",res);return 0; } 


0 0