模问题~~
#include <stdio.h>int main()
{
int n, m, i;
while (1)
{
scanf("%d %d", &n, &m);
if (m == 0 && n == 0) /*遇到0 0程序停止*/
break;
else
{
int f[] = {0, 1, 2, 3, 0};
if (n <= 3)
printf("%d\n", (n % m + m) % m);
if ((n > 3 && n <= 10000) && (m > 1 && m <= 10000))
{
for (i = 1; i <= n - 3; i++)
{
f[0] = f[1];
f[1] = f[2];
f[2] = f[3];
f[3] = (f[0] + f[2]) % m; //问题
}
printf("%d\n", f[3]);
}
}
}
return(0);
}
上面的 f[3] = (f[0] + f[2]) % m; 是什么意思啊
如果把 f[3]变了,那里面这个循环不就不能是f(n) = f(n - 1) + f(n - 3)了吗?
迷惑 ,不明白
这个是hit 的hoj 1987题