解题思路:
本题为常见的进制转化类型问题的升级版,做这题时可以先试着写写进制转化问题,例如十进制转十六进制。其本质解法-》》函数的递归调用。 关键字:递归调用,进制转化
注意事项:
本题不同于简单的进制转化问题,但实际上只是在进制转化的过程中加上了一些别的判断 本题错误解法示范: #include"iostream" using namespace std; char str[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; void func(int numb){ if(numb/27) func(numb/26); putchar(str[(numb-1)%26]); } int main(){ int numb; while(cin>>numb){ func(numb); putchar('\n'); } return 0; }
参考代码:
#include"iostream" using namespace std; char str[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //函数的递归调用,以函数递归实现一个转化 void func(int numb){ if(numb/27){//正确解法中,需要在进制转化的过程中,例如对进制位为Z的进行一个特殊判断 int a=numb/26; if(numb%26==0) func(a-1); else func(a); } putchar(str[(numb-1)%26]); } int main(){ int numb; //定义变量 while(cin>>numb){ //输入变量 func(numb); //调用函数 putchar('\n'); //打印换行 } return 0; }
0.0分
3 人评分
C二级辅导-进制转换 (C语言代码)浏览:788 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:576 |
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:473 |
九宫重排 (C++代码)浏览:1326 |
矩阵乘方 (C语言代码)浏览:1022 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:534 |
C语言程序设计教程(第三版)课后习题7.5 (C++代码)浏览:1392 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言描述——递归算法)浏览:1120 |
打印十字图 (C++代码)浏览:948 |
C语言训练-计算1977!* (C语言代码)浏览:1165 |