#循环输入。每组输入数据为两个整数,分别为X(2≤X<10)和D,其中 D代表了一个X进制数,求这个X进制数的十进制表示。当没有任何输入时,程序结束。
#代码详解:
#includechar c[1000]; int X; int main(){ while(scanf("%d %s",&X,c)!=EOF){ int i; int s=0; for(i=0;c[i];i++){ s=X*s+c[i]-'0'; } printf("%d",s); } return 0; }
#循环输入。给定一个十进制数d和一个进制X(2≤X≤16),输出它的X进制的表示。当没有任何输入时,程序结束。
#十进制转换成其他进制,用取模的方法,得到余数,将余数逆排序。
#解题代码
#include#include int val,R;//定义两个整型变量用来存储十进制数d和进制x int sta[200];//用整型数组保存取模的余数 void Printf(int i){ if(i>=10&&i<=16){ printf("%c",i-10+'A'); }else{ printf("%d",i); } } int main(){ while(scanf("%d %d",&val,%R)!=EOF){ if(val==0){ puts("0"); continue;//如果val等于0,结束当前循环输出0 } else if(val<0){ val=-val; printf("-");//如果val小于0,取绝对值输出负号 } sta[0]=0; while(val){ sta[++sta[0]]=val%R; //将val[0]作为计数器,存储取模的次数 val=val/R; } for(int i=sta[0];i>0;i--){ Printf(val[i]); } } return 0; }



