做水题把心态搞崩了。
我们知道,判断一个正整数是不是 3 的倍数的方法是: 把正整数各位上的数字求和,如果这个和是 3 的倍数,那么该正整数就是 3 的倍数。例 如:12345:1+2+3+4+5=15。15 是 3 的倍数,所以 12345 是 3 的倍数; 1234:1+2+3+4=10。10 不是 3 的倍数,所以 1234 不是 3 的倍数。 给出 n 个正整数,判断它们是不是 3 的倍数。 对于每个正整数:如果是,输出 Yes;否则,输出 No。
输入的一行,包含一个正整数 n,表示正整数的个数。 以下 n 行,每行一个正整数 a。
输出共 n 行,每行输出一个 Yes 或 No,表示第 i 个数是不是 3 的倍数。 注意:每行的输出只能是 Yes 或 No,注意大小写,不要有多余的其它字符(包括空格)
3
13
120
228
No
Yes
Yes
13:1+3=4。因为 4 不是 3 的倍数,所以 13 也不是 3 的倍数。所以输出 No 120:1+2+0=3。因为 3 是 3 的倍数,所以 120 也是 3 的倍数。所以输出 Yes 228:2+2+8=12。因为 12 是 3 的倍数,所以 228 也是 3 的倍数。所以输出 Yes。
对于 100% 的数据,1≤n≤1000。 对于 30% 的数据,0<a≤2000000000; 对于 100% 的数据,a 的位数不超过 255。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
char a[260]={0};
scanf("%255s",a);
long long sum=0;
for(int j=0;a[j]!='\0';j++)
sum+=a[j]-'0';
if(sum%3==0) printf("Yes\n");
else printf("No\n");
}
return 0;
}