< ---
思路:1.进制转换。2.模块化处理 3.三个子程序-将输入数字和逆序加和并 进制处理---将数
字按正序和逆序进行排序储存数组---将两个数组对比,
相同则STEP加1
参考代码:
nt add(int x,int y) //加和的进制转换 { int a[1000]; int b[1000]; int i,j,k; int zhuan,zhuan1,sum,sumadd,sum1,place,sumadd1; zhuan=x; sum=0; sumadd=0; sum1=0; place=0; sumadd1=0; while(zhuan!=0) //输入数字的位数 { zhuan=zhuan/10; sum+=1; } zhuan1=x; for(i=sum-1;i>=0;i--) //将位数输入数组 { a[i]=zhuan1%10; zhuan1=(zhuan1-zhuan1%10)/10; } for(i=0;i<sum;i++) { sum1+=a[i]*pow(10,i); } sumadd=sum1+x; while(sumadd>0) { b[place]=sumadd%y; sumadd=sumadd/y; place+=1; } for(i=0;i<place;i++) { sumadd1+=b[i]*pow(10,i); } //进制转换 return sumadd1;}
< ---
int place_z(int x) //正向储存 { int a[100]; int place=0; while(x>0) { a[place]=x%10; x=x/10; place++; } return a[100];}int place_f(int x) //反向储存 { int b[100]; int place=0,i; int y=x; while(y>0) { y=y/10; place++; } for(i=place-1;i>=0;i--) { b[i]=x%10; x=x/10; } return b[100];}int lenght(int x){ int place; while(x>0) { x=x/10; place++; } return place;}
< ---
int contrast(int x,int y) { int a[100]; int b[100]; int place,i; int ww=0; a[100]=place_z(x); b[100]=place_f(x); place=lenght(x); for(i=0;i<place;i++) { if(a[i]!=b[i]) { x=add(x,y); a[100]=place_z(x); b[100]=place_f(x); ww+=1; } else break; } printf("%d",ww); return 0;
0.0分
2 人评分
C语言程序设计教程(第三版)课后习题1.5 (C++代码)浏览:404 |
1199题解浏览:655 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:446 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言描述之函数调用)浏览:800 |
孤独的骑士 (C语言代码)浏览:1048 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:613 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:656 |
纪念品分组 (C语言代码)浏览:876 |
WU-C语言程序设计教程(第三版)课后习题6.5 (C语言代码)浏览:1306 |
回形取数 (C语言代码)浏览:1199 |