Number Sequence
原创
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1005
此题是有规律的,直接算出f[n]是不现实的,大家可以测试一些A/B/n,输出数据看看是否有循环规律。
只要找到循环节就可以缩小n值!
Java AC
1 import java.util.*; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 Scanner reader=new Scanner(System.in); 7 int A; 8 int B; 9 int n; 10 int f[]=new int[1005]; 11 f[1]=1; 12 f[2]=1; 13 while(reader.hasNext()) { 14 A=reader.nextInt(); 15 B=reader.nextInt(); 16 n=reader.nextInt(); 17 if(A==0 && B==0 && n==0) { 18 break; 19 } 20 int i; 21 for(i=3;i<1000;i++) { 22 f[i]=(A*f[i-1]+B*f[i-2])%7; 23 if(f[i]==1 && f[i-1]==1) { 24 break; 25 } 26 } 27 n=n%(i-2); 28 f[0]=f[i-2]; 29 System.out.println(f[n]); 30 } 31 } 32 33 }
18:34:12
2018-08-20