本文共 947 字,大约阅读时间需要 3 分钟。
摘要:以前写的进制转换一般不会考虑大数问题,举个例子就是如果16进制的FFFFFFFFF就是16^9是一个非常大的数,这个时候就需要用数组来存。
题目:
将M进制的数X转换为N进制的数输出。输入
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。输出
输出X的N进制表示的数。
样例输入
10 2
11样例输出
1011
提示
注意输入时如有字母,则字母为大写,输出时如有字母,则字母为小写。
**解题思路:**这个题主要是模拟进制转换的过程写的,运行一遍代码就可以看懂。。
程序代码:
#include#include #include char s1[1000],c[1000];int a[1000],b[1000];int main(){ int i,j,k,m,n,x,t,s,sum,v,w; scanf("%d%d",&m,&n); scanf("%s",s1); t=strlen(s1); //先转换为十进制 memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); k=1; for(i=0;i ='0'&&s1[i]<='9') a[0]=a[0]+s1[i]-'0'; else if(s1[i]>='A'&&s1[i]<='Z') a[0]=a[0]+s1[i]-'A'+10; v=0; for(j=0;j =10) { v=a[j]/10; a[j]=a[j]%10; } else v=0; } while(v) { a[k++]=v%10; v=v/10; } } j=0; //把十进制的数顺序掉一下 for(i=k-1;i>=0;i--) b[j++]=a[i]; /* for(i=0;i =0;i--) printf("%c",c[i]); printf("\n"); return 0;}
转载地址:http://lrxzi.baihongyu.com/