#include<iostream> #include<cstdio> #include<cstring> using namespace std; typedef long long ll; int base;//base 记录进制, n 记录输入的数字 char f[100]; void add(char s[]) { char s1[100] , s2[100] , temp[100]; strcpy(s1,s); int len = strlen(s); for(int i=0;i<len;i++) s2[len-1-i]=s[i]; s2[len]='\0'; int g = 0 ; for(int i=0;i<len;i++) { int t =s1[i]-'0'+s2[i]-'0' + g ; temp[i]= t % base + '0' ; g = t / base; if(i==len-1) if(g>0){ strcpy(s,temp); s[len]=g + '0'; s[len+1]='\0'; return ; } } temp[len]='\0'; strcpy(s,temp); } int main(void){ while(scanf("%d%s",&base ,f)!=EOF){ int ok = 0 ,cnt = 0;//cnt记录执行的次数 while(!ok || cnt >30){ int len=strlen(f); int flag = 1 ; //标记字符串f是不是对称的 for(int i=0;i<=len/2;i++) if(f[i]!=f[len-1-i]){ flag = 0 ; break; } if(flag) ok = 1; else { add(f); cnt++; }//增加次数 } if(cnt<=30) printf("STEP=%d\n",cnt); else printf("Impossible!\n"); } return 0; }
解题思路:看不懂就自己思考思考,哈哈哈
注意事项:
参考代码:
0.0分
0 人评分
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1317 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:660 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:545 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:389 |
核桃的数量 (C语言代码)浏览:869 |
C二级辅导-计负均正 (C语言代码)浏览:480 |
川哥的吩咐 (C语言代码)浏览:603 |
模拟计算器 (C语言代码)浏览:2270 |
计算质因子 (C语言代码)浏览:695 |
C语言程序设计教程(第三版)课后习题7.4 (C语言代码)浏览:441 |