警示后人 如果80分 WA#9#10
查看原帖
警示后人 如果80分 WA#9#10
777673
Gavin_GYJ楼主2025/7/28 14:14

原因:如果字符串从头查到尾,那么乘法爆long long了 先查找是否有0,如果有0直接输出kawaii就行 然后如果在查找过程中发现大于 kk 了,直接break输出dame 80pts代码

#include<bits/stdc++.h>
using namespace std;
int main() {
	int t, k;
	cin >> t >> k;
	while (t--) {
		string s;
		cin >> s;
		long long sum = 1;
		for (int i = 0; i < s.size(); i++) {
			sum *= s[i] - '0';
		}
		if (sum <= k) cout << "kawaii" << "\n";
		else cout << "dame" << '\n';
	}
}

AC代码

#include<bits/stdc++.h>
using namespace std;
int main() {
	int t, k;
	cin >> t >> k;
	while (t--) {
		string s;
		cin >> s;
		long long sum = 1;
		if (s.find('0') != string::npos) {
			cout << "kawaii" << '\n'; continue;
		}
		bool flag = true;
		for (int i = 0; i < s.size(); i++) {
			sum *= s[i] - '0';
			if (sum > k) { cout << "dame" << '\n'; flag = false; break; }
		}
		if(flag) cout << "kawaii" << "\n";
	}
}
2025/7/28 14:14
加载中...