https://www.luogu.org/problem/P2084
#include<bits/stdc++.h> using namespace std; int main() { int i,jz,j; char n[1005]; scanf("%d%s",&jz,n);//读入进制和进制下的数(字符串不需要取地址符) for(i=0,j=strlen(n)-1;i<strlen(n);i++,j--)//i是为了指向每一位数,j是为了输出所在位置,即2的j次方 { if(i!=0&&n[i]!='0') printf("+");//判断是否第一项,是输出加号。当然如果系数为0也不需要输出 if(n[i]!='0') printf("%c*%d^%d",n[i],jz,j);//判断系数是否为0,不是输出 } return 0; }