小明发明了一种幸运数。一个正整数其偶数位不变个位为第1位十位为第2位以此类推奇数位做如下变换将数字乘以7如果不大于9则作为变换结果否则把结果的各位数相加如果结果不大于9则作为变换结果否则结果仍大于9继续把各位数相加直到结果不大于9作为变换结果。变换结束后把变换结果的各位数相加如果得到的和是8的倍数则称一开始的正整数为幸运数。例如16347;第1位为7乘以7结果为49大于 9各位数相加为13仍大于9
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N;
for (int i = 0; i < N; i++) {
long long num;
cin >> num;
int sum = 0;
bool isLucky = true;
bool isEven = true;
while (num > 0) {
int digit = num % 10;
if (isEven) {
if (digit > 9) {
int tempSum = 0;
while (digit > 0) {
tempSum += digit % 10;
digit /= 10;
}
digit = tempSum;
}
} else {
digit *= 7;
if (digit > 9) {
int tempSum = 0;
while (digit > 0) {
tempSum += digit % 10;
digit /= 10;
}
digit = tempSum;
if (digit > 9) {
tempSum = 0;
while (digit > 0) {
tempSum += digit % 10;
digit /= 10;
}
digit = tempSum;
}
}
}
sum += digit;
isEven = !isEven;
num /= 10;
}
if (sum % 8 != 0) {
isLucky = false;
}
if (isLucky) {
cout << "T" << endl;
} else {
cout << "F" << endl;
}
}
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/i1y0 著作权归作者所有。请勿转载和采集!