gdhub 2017-09-06 09:55 采纳率: 0%
浏览 1218

请教一道进制转换的C++题目思路与源码

请教一道C++题目思路与源码:输入K进制的正整数N,请把N化为L进制后输出。(N<1000000;L,K<=16) 有多组数据。 输入格式: K N L 输入样例: 8 10 2 10 10 16 输出样例: 1000 A

请问一下,这样做错在哪?
#include
int k,n,l,s,b[100],c,d;
char a[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int main(){
while(scanf("%d%d%d",&k,&n,&l)){
c=s=0;
d=1;
while(n){
s=s+n%10*d;
n/=10;
d*=k;
}
while(s){
b[++c]=s%l;
s/=l;
}
for(int i=c;i>0;i--)printf("%c",a[b[i]]);
printf("\n");
}
}

  • 写回答

3条回答 默认 最新

  • 关注

    用栈的思想可以解决进制转换的问。
    算法如下(以十进制转换为二进制为例):
    void conversion(){
    InitStack(S); // 构造栈
    scanf("%d",N);
    while(N){
    Push(S,N%2);
    N=N/2;
    }

            while(!StackEmpty(S)){
                Pop(S,e);
                printf("%d",e);
            }
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?