社区讨论
求助!!!
P1581A+B Problem(升级版)参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lv901y4a
- 此快照首次捕获于
- 2024/04/21 11:59 2 年前
- 此快照最后确认于
- 2024/04/21 14:44 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int jw[6]={2,3,5,7,11,13};
bool flag=0;
char A[100],B[100],a[100],b[100],c[200],ans[300];
int main(){
scanf("%s",c);
int cl=strlen(c),al=0,bl=0;
for(int i=0;i<cl;i++){
if(flag==0&&c[i]!='+'){
al++;
a[i]=c[i];
}
else if(flag==1&&c[i]!='+'){
bl++;
b[i-al-1]=c[i];
}
else if(c[i]=='+') flag=1;
}
if(al>bl) cl=al;
else cl=bl;
al=bl=0;
for(int i=cl-1;i>=0;i--){
if(a[i]!=','){
al++;
A[al]=a[i];
}
if(b[i]!=','){
bl++;
B[bl]=b[i];
}
}
if(al>bl) cl=al;
else cl=bl;
for(int i=cl-1;i>=0;i--){
ans[i]=A[i]+B[i];
if(ans[i]>=jw[i]){
ans[i-1]+=ans[i]/jw[i];
ans[i]%=jw[i];
}
}
//for(int i=cl-1;i>=0;i--) printf("%d ",ans[i]);
//printf("\n");
bool tp=0;
for(int i=cl-1;i>=0;i--){
if(tp==0){
if(ans[i]<=9) printf("%d",ans[i]);
else if(ans[i]==10) printf("A");
else if(ans[i]==11) printf("B");
else if(ans[i]==12) printf("C");
else if(ans[i]==13) printf("D");
tp=1;
}
else{
if(ans[i]<=9) printf(",%d",ans[i]);
else if(ans[i]==10) printf(",A");
else if(ans[i]==11) printf(",B");
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...