题解 | 九倍平方数
九倍平方数
https://www.nowcoder.com/practice/032c72fab5fe4a2ea8e11d40378a493d
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int test_num = 0;
scanf("%d", &test_num);
char buf[100001];
int ch = getchar(); //用来吸收上一个回车
while(test_num--)
{
fgets(buf, 100001, stdin);
int len = strlen(buf) - 1;
buf[len] = '\0';
int sum = 0;
for(int i = 0; buf[i] != '\0'; i++)
{
sum += buf[i] - '0'; //注意类型,要转换
}
int buf_len = strlen(buf);
int nums[2] = {0}; //贮存2和3的个数
for(int i = 0; i < buf_len; i++)
{
if(buf[i] == '2')
{
nums[0]++;
}
if(buf[i] == '3')
{
nums[1]++;
}
}
int flag = 0;
//开始枚举
for(int i = 0; i <= nums[0]; i++)
{
if(flag) {break;} //判断本次循环是否结束
for(int j = 0; j <= nums[1]; j++)
{
int answer = sum + i * 2 + j * 6;
if (answer % 9 == 0)
{
flag = 1;
printf("YES\n");
break;
}
}
}
if(!flag)
{
printf("NO\n");
}
}
return 0;
}