80分,悬关

P1957 口算练习题

```cpp #include<bits/stdc++.h> using namespace std; int c[1001],n,b[1001],a1[1001]; string a[1001]; int main() { char ch1,ch,chh[1001]; cin>>n; for(int i=1;i<=n;i++){ cin>>ch1; if(ch1>'9'||ch1<'0') ch=ch1; cin>>a[i]>>b[i]; if(ch1<='9'&&ch1>='0'){ a1[i]=ch1-'0'; for(int j=1;j<=a[i].length();j++) a1[i]=a1[i]*10+a[i][j-1]-'0'; } else{ a1[i]=0; for(int j=0;j<a[i].length();j++) a1[i]=a1[i]*10+a[i][j]-'0'; } if(ch=='a'){ c[i]=(a1[i])+b[i];chh[i]='+'; } else if(ch=='b'){ c[i]=(a1[i])-b[i];chh[i]='-'; } else { c[i]=(a1[i])*b[i];chh[i]='*'; } } for(int i=1;i<=n;i++){ int sum=2; printf("%d%c%d=%d\n",a1[i],chh[i],b[i],c[i]); if(c[i]<0) sum++; if(a1[i]==0)sum++; if(b[i]==0)sum++; if(c[i]==0)sum++; while(a1[i]!=0) { a1[i]/=10;sum++; } while(b[i]!=0) { b[i]/=10;sum++; } while(c[i]!=0) { c[i]/=10;sum++; } cout<<sum<<endl; } return 0; } ```
by possibleadmin @ 2024-02-22 11:06:57


如果你的算试像这样,如 $0+0=0$ 是无法成功计算长度的,因为进不去数位分解的while
by possibleadmin @ 2024-02-22 11:08:47


@[lucy2012](/user/1252442)
by possibleadmin @ 2024-02-22 11:09:11


@[possibleadmin](/user/700091) 谢谢!
by lucy2012 @ 2024-02-22 11:11:34


|