您的位置:首页 > 产品设计 > UI/UE

HDOJ1005 Number Sequence

2014-02-16 12:14 381 查看
原题链接

最多49一循环,关键是找到循环起点和循环次数,循环起点不一定为f[1],所以要把数组适当开大点。

之前一直把循环起点当成1了。所以老是WA。%>_<%

附ac代码:

#include <stdio.h>
int f[100];

int main(){
int a, b, n, i, j, cir;
while(scanf("%d%d%d", &a, &b, &n), a || b || n){
f[1] = f[2] = 1; cir = 0;
for(i = 3; i != 100; ++i){
f[i] = (a * f[i - 1] + b * f[i - 2]) % 7;
for(j = 2; j != i; ++j)
if(f[j - 1] == f[i - 1] && f[j] == f[i]){
cir = i - j;
break;
}
if(cir) break;
}
printf("%d\n", f[(n - j) % cir + j]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  HDOJ1005