社区讨论
#5错了95
P1581A+B Problem(升级版)参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lwhbtza5
- 此快照首次捕获于
- 2024/05/22 12:31 2 年前
- 此快照最后确认于
- 2024/05/22 17:06 2 年前
CPP
#include<stdio.h>
#include<string.h>
char s[100000],s1[100000];
int a[100000],b[100000],c[100000],jw,qs,qb,t,len,j,k;
int main(){
int w[6]={2,3,5,7,11,13},w1=0;
scanf("%s",s);
qs=strlen(s);
for(int i=1;i<=qs;i++){
if(s[qs-i]!=','&&s[qs-i]!='+'){
t++;
s1[t]=s[qs-i];
}
if(s[qs-i]=='+') qb=t;
}
for(int i=1;i<=qb;i++){
if(s1[i]>='0'&&s1[i]<='9') a[i]=s1[i]-'0';
if(s1[i]>='A'&&s1[i]<='Z') a[i]=s1[i]-'A'+10;
}
for(int i=qb+1;i<=t;i++){
if(s1[i]>='0'&&s1[i]<='9') b[i]=s1[i]-'0';
if(s1[i]>='A'&&s1[i]<='Z') b[i]=s1[i]-'A'+10;
}
/*for(int i=1;i<=qb;i++) printf("%d ",a[i]);
printf("\n");
for(int i=qb+1;i<=t;i++) printf("%d ",b[i]);*/
if(qb>(t-qb)) len=t;
else len=t-qb;
//printf("%d\n",len);
k=qb+1;
for(int i=1;i<=len;i++){
//printf("%d %d %d\n",a[i],b[i],c[i]);
c[i]=(a[i]+b[k]+jw)%w[w1];
jw=(a[i]+b[k]+jw)/w[w1];
if(k!=t) k++;
w1++;
}
if(jw!=0){
len++;
c[len]=jw;
c[len-1]=c[len-1]%w[w1+1];
jw=0;
}
for(int i=len;i>=1;i--){
if(j!=0){
printf(",");
}
else{
j=1;
}
if(c[i]<=9) printf("%d",c[i]);
else printf("%c",c[i]-10+'A');
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...