阿宾情史,经济制高点,清歌之胤礽
打一开始做就听人说这个难,吓得我把它放到了最后做,不过如此嘛。
这里说说样例的坑点
1.最后结果可能高位有0;例如样例结果07201
2.结果会进位,
3.有可能结果是0,(此处取决于你的输出方式)
#include<cstdio> #include<string.h> #include<iostream> #include<map> #include<algorithm> using namespace std; int main(){ char jinzhibiao[21]={'\0'}; scanf("%s",jinzhibiao); //输入进制表 getchar(); //接受第一行的换行符 char num1[21]={'\0'},num2[21]={'\0'}; scanf("%s",num1); getchar(); scanf("%s",num2); reverse(jinzhibiao,jinzhibiao+strlen(jinzhibiao)); reverse(num1,num1+strlen(num1)); reverse(num2,num2+strlen(num2)); int flag=0;//进位 int final[21]={0},wei=0; for(int i=0;i<strlen(jinzhibiao);i++){ int jinzhi;//取出当前位的进制数 if(jinzhibiao[i]=='0') jinzhi=10; else if(isdigit(jinzhibiao[i])) jinzhi=jinzhibiao[i]-'0'; int n1= (num1[i]=='\0')?0:(num1[i]-'0'); int n2= (num2[i]=='\0')?0:(num2[i]-'0'); int n=n1+n2+flag;//当前位的结果; flag=n/jinzhi; final[wei++]=n%jinzhi; } if(flag!=0) final[wei++]=flag; flag=0; for(int i=wei-1;i>=0;i--){ if(final[i]==0&&flag==0) continue; if(final[i]!=0) flag=1; printf("%d",final[i]); } if(flag==0) printf("0"); return 0; }
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
如何在没有core文件的情况下用dmesg+addr2line定位段错误
用QT制作3D点云显示器——QtDataVisualization
网友评论