40分,大佬帮我看下呗
查看原帖
40分,大佬帮我看下呗
768999
liumingkai2022楼主2024/8/2 15:05
#include <bits/stdc++.h>
using namespace std;
bool check (long long n) { // 判断 
	long long t = n; // 替身 
	long long ans = 0; // 总和 
	long long s = 0; // 位数 
	while (t) { 
		s++;
		t /= 10;
	} // 取位 
	t = n; // 替身 
	while (s) { // 枚举每位 
		if (s % 2) { 
			long long f = t % 10; // 当前最小位 
			f *= 7; // 先乘 
			while (f > 9) { // 如果大于 9 
				long long s1 = 0; // 各个数位之和 
				while (f) {
					s1 += f % 10; // 加位 
					f /= 10; // 下一位 
				}
				f = s1; // 赋值回来 
			}
			ans += f; // 总和累加 
		}
		else ans += t % 10; // 累加 
		t /= 10; // 去位 
		s--; // 位数减掉 
	}
	if (ans % 8) return false; // 模 8 不等于 0 
	else return true; // 等于 0 
}
int main() {
	int t;
	cin >> t;
	while (t--) { // t 组样例 
		long long x;
		cin >> x;
		if (check (x)) cout << "T" << endl;
		else cout << "F" << endl;
	}
	return 0;
}
2024/8/2 15:05
加载中...