2 chenyonken chenyonken 于 2016.02.04 16:17 提问

(杭电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个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.02.04 16:30
已采纳
 f[i] = (a*f[i - 1] + b*f[n - 2]) % 7;//n错了吧?是i?
chenyonken
chenyonken 恩,对了,是这样,能顺便跟我说一下为什么要是a,b的值小于7吗
接近 2 年之前 回复
qq_27183003
qq_27183003 把题目贴出来看看。
接近 2 年之前 回复
chenyonken
chenyonken 回复ysuwood: 为什么要让他们小于7啊
接近 2 年之前 回复
chenyonken
chenyonken 回复ysuwood: 为什么要让他们小于7啊
接近 2 年之前 回复
chenyonken
chenyonken 回复ysuwood: 为什么要让他们小于7啊
接近 2 年之前 回复
chenyonken
chenyonken 回复ysuwood: 为什么要让他们小于7啊
接近 2 年之前 回复
qq_27183003
qq_27183003 a %= 7,b %= 7;//使得a,b都小于7
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!