Number Sequence

原创


题目:http://acm.hdu.edu.cn/showproblem.php?pid=1005

Number Sequence

  此题是有规律的,直接算出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