社区讨论
80分求助
P1957口算练习题参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjobp5o
- 此快照首次捕获于
- 2025/11/04 05:50 4 个月前
- 此快照最后确认于
- 2025/11/04 05:50 4 个月前
CPP
#include<bits/stdc++.h>
using namespace std;
char a[100000];
string b,c;
long long n,pd;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]>='a'&&a[i]<='z')
{
cin>>b>>c;
pd=0;
}
else
{
cin>>b>>c;
b=a[i]+b;
if(a[i-1]=='a'||pd==1)
pd=1;
else if(a[i-1]=='b'||pd==2)
pd=2;
else if(a[i-1]=='c'||pd==3)
pd=3;
}
int s=0,s1=0,t=1,sum=0,ans=2;
if(a[i]=='a'||pd==1)
{
int t=1;
while(sum!=b.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<b.size();j++)
{
s+=(b[j]-'0')*t;
t/=10;
}
ans+=b.size();
t=1,sum=0;
while(sum!=c.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<c.size();j++)
{
s1+=(c[j]-'0')*t;
t/=10;
}
ans+=c.size();
cout<<s<<'+'<<s1<<'='<<s1+s;
int kun=s1+s;
sum=0;
while(kun!=0)
{
sum++;
kun/=10;
}
cout<<endl;
cout<<sum+ans;
cout<<endl;
t=1;
}
else if(a[i]=='c'||pd==3)
{
t=1;
while(sum!=b.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<b.size();j++)
{
s+=(b[j]-'0')*t;
t/=10;
}
ans+=b.size();
t=1,sum=0;
while(sum!=c.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<c.size();j++)
{
s1+=(c[j]-'0')*t;
t/=10;
}
ans+=c.size();
cout<<s<<'*'<<s1<<'='<<s1*s;
int kun=s1*s;
sum=0;
while(kun!=0)
{
sum++;
kun/=10;
}
if(s1==0||s==0)
sum++;
cout<<endl;
cout<<sum+ans;
cout<<endl;
t=1;
}
else if(a[i]=='b'||pd==2)
{
t=1;
while(sum!=b.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<b.size();j++)
{
s+=(b[j]-'0')*t;
t/=10;
}
ans+=b.size();
t=1,sum=0;
while(sum!=c.size())
{
sum++;
t*=10;
}
t/=10;
for(int j=0;j<c.size();j++)
{
s1+=(c[j]-'0')*t;
t/=10;
}
ans+=c.size();
if(s-s1<0)
ans+=1;
cout<<s<<'-'<<s1<<'='<<s-s1;
int kun=s-s1;
sum=0;
while(kun!=0)
{
sum++;
kun/=10;
}
cout<<endl;
cout<<sum+ans;
cout<<endl;
t=1;
}
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...