P6467 求助(悬关)
查看原帖
P6467 求助(悬关)
663435
Maple_plain楼主2023/4/20 20:24

本地过去了,但你谷 wa\colorbox{red}{\textcolor{white}{wa}} 了

提交记录

#include <bits/stdc++.h>
using namespace std;

int main()
{
	string a,b,c;
	int la,lc,l0;
	getline(cin,a);
	getline(cin,b);
	//是'*'还是'+' 
	getline(cin,c);
	la = a.size(); 
	lc = c.size(); 
	l0 = abs(la-lc);
	//两数的位数差 
	if(b[0] == '*')
	{
		for(int i = 0; i < la; i++) cout << a[i];
		//首位'1'以及a数的'0' 
		for(int i = 1; i < lc; i++) cout << c[i];
		//b数的'0'  
	}//乘法:'0'的个数相加,首位的'1'不变 
	else
	{
		if(la > lc)
		{
			for(int i = 0; i < l0; i++) cout << a[i];
			//输出较大数前l0位 
			for(int i = 0; i < lc; i++) cout << c[i];
			//输出较小数 
		}
		else if(lc > la)
		{
			for(int i = 0; i < l0; i++) cout << c[i];
			//输出较大数前l0位 
			for(int i = 0; i < la; i++) cout << a[i];
			//输出较小数 
		}
		else//位数相同,'0'不变首位两个'1'相加变成'2' 
		{
			cout << "2";
			for(int i = 1; i < la; i++) cout << a[i];
		}
	}//加法:较大数的前l0位不变,后面变成较小数 
	return 0;
}
2023/4/20 20:24
加载中...