社区讨论

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 条回复,欢迎继续交流。

正在加载回复...