好奇怪啊
查看原帖
好奇怪啊
1271809
Oyjq2011楼主2024/9/6 20:43

这代码出什么问题了啊,我调试的时候明明看见ans==x,最后却返回了false。 注释内容是我用来调试的。 输入样例#1就出问题了,救救我吧。

#include <iostream>
using namespace std;

int main() {
	int M,x,num,digit,ans,sum;
	int a[10];
	cin >> M;
	
	for(int i = 1;i <= M;i++) {
		cin >> x;
		
		num = 0;
		digit = 0;
		while(x != 0) {
			digit++;
			a[digit] = x%10;
			x -= (x%10);
			x /= 10;
		}
		
		ans = 0;
		for(int j = 1;j <= digit;j++) {
			sum = 1;
			for(int k = 1;k <= digit;k++) {
				sum *= a[j];
			}
			ans += sum;
			// cout << "a[j]:" << a[j] << endl;
			// cout << "ans:" << ans << endl;
			// cout << "sum:" << sum << endl;
		}
		
		// cout << "digit:" << digit << endl;
		if(x == ans) {
			cout << "T" << endl;
		}
		else {
			cout << "F" << endl;
		}
	}
	
	return 0;
}
2024/9/6 20:43
加载中...