@ -1,7 +1,77 @@
#include <bits/stdc++.h>
using namespace std;
/*
首先,我们要录进来一个数
先做个函数吧!
要bool的
int a[n];
bool xy(int n)要一个数,
进行判断
{先怎么办呢?
先数位分离:
需要什么?
需要一个n,把它分离后,
存储到一个数组里:
int al=0;
while(n){
int t=n%10;
a[++al]=t;
n/=10;
}
a里面是什么?
a中是分离好的数,以便后来判断是奇数位还是偶数位
开始判断!
注意:如题目所示,个位为一,十位为2,所以不需把
最高为放在a[1]处
分为两种情况:
1.偶数位,不做改变 注意,先判断偶数,会更清晰
2.奇数位,需要:1.a[奇数位]*=7 2.if(a[奇数位]>9)
a[i]=按位相加(此处可为函数,大致是:a[i]=a[i]%10+
a[i]/10),
那么,目前捋完了。
怎么打呢?
int t=0;
for(int i=al;i;i--)t=t*10+a[i];
该看看它是否%8==0;
if(t%8==0)return true;
else return false;
*/
int a[100];
int main() {
int ys(int n) {
while (n > 9)
n = n % 10 + n / 10;
return n;
bool xy(int n) {
int al = 0;
while (n) {
int t = n % 10;
a[++al] = t;
n /= 10;
for (int i = 1; i <= al; i++) {
if (i % 2)
a[i] = ys(a[i] * 7);
int t = 0;
for (int i = al; i; i--)
t = t * 10 + a[i];
return !(t % 8);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
if (xy(n))
cout << "T" << endl;
else
cout << "F" << endl;
return 0;