编程介的小学生 2017-05-29 06:21 采纳率: 20.5%
浏览 1262
已采纳

A Simple Math Problem

Problem Description
Lele now is thinking about a simple function f(x).

If x < 10 f(x) = x.
If x >= 10 f(x) = a0 * f(x-1) + a1 * f(x-2) + a2 * f(x-3) + …… + a9 * f(x-10);
And ai(0<=i<=9) can only be 0 or 1 .

Now, I will give a0 ~ a9 and two positive integers k and m ,and could you help Lele to caculate f(k)%m.

Input
The problem contains mutiple test cases.Please process to the end of file.
In each case, there will be two lines.
In the first line , there are two positive integers k and m. ( k<2*10^9 , m < 10^5 )
In the second line , there are ten integers represent a0 ~ a9.

Output
For each case, output f(k) % m in one line.

Sample Input
10 9999
1 1 1 1 1 1 1 1 1 1
20 500
1 0 1 0 1 0 1 0 1 0

Sample Output
45
104

  • 写回答

1条回答 默认 最新

  • EBABEFAC 2017-05-29 07:23
    关注
     import java.util.ArrayList;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            printResult();
        }
    
        public static void printResult() {
            Scanner scanner = new Scanner(System.in);
            while(scanner.hasNextInt()) {
                int k = scanner.nextInt();
                int m = scanner.nextInt();
                int[] arr = new int[10];
                for(int i = 0; i < 10; i++)
                    arr[i] = scanner.nextInt();
                System.out.println(getResult(arr, k) % m);
            }
    
        }
    
        public static int getResult(int[] a, int x) {
            if(x < 10)
                return x;
            ArrayList<Integer> list = new ArrayList<>();
            int result = 0;
            for(int i = 0; i <= x; i++) {
                if(i < 10)
                    result = i;
                else {
                    result = a[0]*list.get(i-1)+a[1]*list.get(i-2)+a[2]*list.get(i-3)+a[3]*list.get(i-4)+a[4]*list.get(i-5) +
                            a[5]*list.get(i-6)+a[6]*list.get(i-7)+a[7]*list.get(i-8)+a[8]*list.get(i-9)+a[9]*list.get(i-10);
                }
                list.add(result);
            }
            return list.get(x);
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值