chenyonken 2016-02-04 08:17 采纳率: 0%
浏览 1358
已采纳

(杭电1005)为什么第二个结果错了,是5不是1:a %= 7,b %= 7;这一句是什么作用

#include
int main()
{
int f[53], i, a, b, n;
while(scanf("%d%d%d", &a, &b, &n))
{
if (a ==0&&b ==0&&n == 0)
break;
if ((n == 1 )|| (n == 2))

    {
        printf("1\n");
        continue;
    }
    f[1] = 1,f[2] = 1;
    a %= 7,b %= 7;
    for (i = 3; i <= 52; i++)
    {
        f[i] = (a*f[i - 1] + b*f[n - 2]) % 7;
        if ((f[i] == 1) && (f[i - 1] == 1))break;
    }
    i = i - 2;
    n %= i;
    f[0] = f[i];
    printf("%d\n", f[n]);
}

}图片说明


  • 写回答

1条回答 默认 最新

  • ysuwood 2016-02-04 08:30
    关注
     f[i] = (a*f[i - 1] + b*f[n - 2]) % 7;//n错了吧?是i?
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?