无
今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 :
1*2^4+0*2^3+1*2^2+0*2^1+1*2^0,
那么请你编程实现,将一个M进制的数N转换成十进制表示的式子。
注意:当系数为0时,该单项式要省略。
输入格式:
两个数,M和N,中间用空格隔开。
输出格式:
共一行,一个十进制表示的式子。
输入样例#1: 复制
2 10101
输出样例#1: 复制
1*2^4+1*2^2+1*2^0
对于100%的数据,1 题解:这个题思路很简单,就是整型变量存m,字符数组(字符串)存n,然后进行格式化输出即可,但是需要注意的是,这个题很容易会卡在80分,这是因为有一种情况:2 10000,输出时会多一个 + 号 (我就在这里WA了~) AC代码:
#include
#include
int main()
{
int i,jz,j; //jz代表 :进制
char n[1005]; //用字符数组存当前进制的数
scanf("%d%s",&jz,n); //输入一个进制和对应的数,注意字符串输入的时候不需要加取地址符号
for(i=0,j=strlen(n)-1;j>=0;i++,j--)
{
if(i!=0&&n[i]!='0')
printf("+"); //从右向左判断,当前字符不是0的时候输出+,而且i为0时不需要输入+号
if(n[i]!='0') //从右向左判断,当出现非零字符时,格式化输出即可
printf("%c*%d^%d",n[i],jz,j);
}
}