B3850 题解
思路分析
实在没有什么好讲的,读入后直接模拟修改每一个数位即可。
可以通过代码理解。
代码实现
#include <iostream>
#include <cstdio>
int sum(long long k) { // 求一个数的各位之和
int ans = 0;
for (; k; k /= 10) ans += k % 10;
return ans;
}
int trans(long long k) { // 变换一个数位
k *= 7;
while (k > 9) k = sum(k);
return k;
}
bool judge(long long n) {
int ans = 0;
for (int p = 1; n; n /= 10, ++p) {
if (p & 1) ans += trans(n % 10);
else ans += n % 10;
}
return !(ans % 8);
}
int main() {
int T;
long long n;
for (std::cin >> T; T; --T) {
std::cin >> n;
std::cout << (judge(n) ? 'T' : 'F') << std::endl;
}
return 0;
}