进制转换
题目描述
今天小明学会了进制转换,比如 (10101)2,那么它的十进制表示的式子就是 :
1×24+0×23+1×22+0×21+1×20
那么请你编程实现,将一个 M 进制的数 N 转换成十进制表示的式子。
注意:当系数为 0 时,该单项式要省略。
输入格式
两个整数,M 和 N,中间用空格隔开。
输出格式
共一行,一个十进制表示的式子。
样例 #1
样例输入 #1
2 10101
样例输出 #1
1*2^4+1*2^2+1*2^0
提示
对于 100% 的数据,1<M<10,N 的位数不超过 1000 且均为正整数。
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=50;
ll a[N];
ll m,n,cnt;
int main()
{
cin>>m>>n;
while(n)
{
a[cnt]=n%10;
cnt++;
n/=10;
}
reverse(a,a+cnt);
for(int i=0;i<cnt;i++)
{
if(a[i]!=0)
{
if(cnt-i-1!=0)
{
cout<<a[i]<<"*"<<m<<"^"<<(cnt-i-1)<<"+";
}else cout<<a[i]<<"*"<<m<<"^"<<(cnt-i-1);
}
}
}