蓝桥杯上Excel地址c语言,[蓝桥杯][2017年第八届真题]Excel地址 (C++代码)

解题思路:本题为常见的进制转化类型问题的升级版,做这题时可以先试着写写进制转化问题,例如十进制转十六进制。其本质解法-》》函数的递归调用。

关键字:递归调用,进制转化

注意事项:本题不同于简单的进制转化问题,但实际上只是在进制转化的过程中加上了一些别的判断

本题错误解法示范:

#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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值