60分,本地能过洛谷不行
查看原帖
60分,本地能过洛谷不行
351254
Sqytih楼主2024/7/3 14:15

下载的第七个数据点和题目给的一样,这个点本地能过洛谷不行.

我看在讨论区中说scanf不行,但我写cin呢?

是由于\n\r的问题吗?

对于我用cin输入应该怎么解决?

这种情况会在正式比赛出现吗?

还请各位大佬解惑

关于代码的一点解释:

在输入abc还是数字处理方面的思路是先都存在一个string里通过判断string[0]是不是a||b||c,如果是另外输入两个数字,反之将string里的转化成数字并再输入另一个数字.

代码中的len( )作用是求整数的位数, trans( )作用将string中的数字转成int数字.

代码如下:

#include <iostream>
#include <string.h>
using namespace std;

char mode;
int n; 

int len(int a){ 
	if(a == 0) return 1;
	int l = 0;
	while(a > 0){
		l++;
		a /= 10;
	}
	return l;
}

int trans(char a[100], int l){
	int re;
	for(int i = 1; i <= l; i++){
		int now = int(a[i])-48;
		re += now;
		re *= 10;
	}
	return re/10;
}

int main( ){
	cin >> n;
	while(n > 0){
		int num1, num2;
		string in;	
		cin >> in;
		if(in[0]=='a'||in[0]=='b'||in[0]=='c'){
			mode = in[0];
			cin >> num1 >> num2;
		}else{
			//in(string) -> num1(int)
			char cnum[100];
			for(int i = 0; i < in.length(); i++){
				cnum[i+1] = in[i];
			}
			num1 = trans(cnum, in.length());
			cin >> num2;
		}
		
		
		if(mode == 'a'){
			cout << num1 << "+" << num2 << "=" << num1+num2 << endl;
			if(n == 1){
				cout << len(num1)+len(num2)+len(num1+num2)+2;
				return 0;
			}
			cout << len(num1)+len(num2)+len(num1+num2)+2 << endl;
		}
		if(mode == 'b'){
			if(num1-num2 < 0){
				cout << num1 << "-" << num2 << "=" << num1-num2 << endl;
				if(n == 1){
					cout << len(num1)+len(num2)+len(num2-num1)+3;
					return 0;
				}
				cout << len(num1)+len(num2)+len(num2-num1)+3 << endl;
			}else{
				cout << num1 << "-" << num2 << "=" << num1-num2 << endl;
				if(n == 1){
					cout << len(num1)+len(num2)+len(num1-num2)+2;
					return 0;
				}
				cout << len(num1)+len(num2)+len(num1-num2)+2 << endl;
			}
		}
		if(mode == 'c'){
			cout << num1 << "*" << num2 << "=" << num1*num2 << endl;
			if(n == 1){
				cout << len(num1)+len(num2)+len(num1*num2)+2;
				return 0;
			}
			cout << len(num1)+len(num2)+len(num1*num2)+2 << endl;
		}
		
		n--;
		
	}//while 
	return 0;
}

下载的第七个数据:

本地结果:

测评数据: https://www.luogu.com.cn/record/163756685

2024/7/3 14:15
加载中...