没必要存储真实的累加和,仅需存储3的余数。
#include <stdio.h>
int main(int argc, char* argv[]) {
int n,i,s;
int a, b, f;
scanf("%d", &n);
a = 7%3;
b = 11%3;
if (n == 0)
s = 1;
else
s = 0;
for (i = 2; i <= n; i++)
{
f = (a + b) % 3;
a = b;
b = f;
s = (s + f) % 3;
}
if (s)
printf("no");
else
printf("yes");
}