求助大佬 80分 高精度
查看原帖
求助大佬 80分 高精度
246331
mystic_qwq楼主2023/12/3 19:05

WA#5 感激不尽

#include<stdio.h>
#include<string.h>
d[8]={1,2,3,5,7,11,13,17},out[8],l,c,x,sum,a=1;
char s[100001];
main(){
  scanf("%s",s);
  for(int i=strlen(s)-1;~i;--i){
    if(isdigit(s[i])){
      if(x)x=(s[i]^48)*10+x;
      else x=s[i]^48;
    }
    else if(s[i]==','){
      //printf("x=%d d[l=%d]=%d sum+=%d sum=%d a=%d\n",x,l,d[l],x*a*d[l],sum,a);
      sum+=x*(a*=d[l++]),x=0;
    }
    else if(s[i]=='+'){
      //printf("x=%d d[l=%d]=%d sum+=%d sum=%d a=%d\n",x,l,d[l],x*a*d[l],sum,a);
      sum+=x*a*d[l],l=x=0,a=1;
    }
  }
  //printf("x=%d d[l=%d]=%d sum+=%d sum=%d a=%d\n",x,l,d[l],x*d[l],sum,a);
  sum+=x*a*d[l],l=0;
  //printf("sum=%d\n",sum);
  while(sum){
    out[l]=sum%d[l+1],sum/=d[++l];
  }
  for(int i=l-1;i;--i)printf("%d,",out[i]);
  printf("%d",*out);
}
2023/12/3 19:05
加载中...