遇到的问题:
1、采用递归发生内存超限,因此不能直接使用递归
2、次数较大,会发生时间超限,因此需要找到循环次数
说明:循环次数为49,是我看到别人的做法是知道的,至于原因,我也想不通,如果读者知道,欢迎留言
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1005/
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
int n,a,b;
int c[][]=new int[7][7];
Scanner cin = new Scanner(System.in);
while(cin.hasNext()){
int x=1,y=1,s=1;
a= cin.nextInt();
b= cin.nextInt();
n= cin.nextInt();
if(a==0&&b==0&&n==0){
break;
}
n=n%49;
for(int i=0;i<c.length;i++){
for(int j=0;j<c[i].length;j++){
c[i][j]=(a*i+b*j)%7;
}
}
if(n==0){
n=49;
}
for(int i=2;i<n;i++){
s=c[x][y];
y=x;
x=s;
}
System.out.println(s);
}
}
}