JavaStudy——0090:做游戏

总时间限制: 10000ms 内存限制: 32767kB

描述
有M个小孩子围成一圈做游戏,每个小孩子都有一个初始的号码。游戏有X步,每一步的操作方法都相同:每个小孩子把自己手上的号码改写成自己原来的号码加上右手边的小孩子的号码除以100的余数。请问你:经过X步之后,每个小孩子手上的号码是多少? 比如:有3个初始编号为{1,2,3}的小孩子,第一步操作完成之后,他们的编号变成了{1+2,2+3,3+1}即{3,5,4}。

输入
输入有N组测试数据。每组测试数据有2行: 第一行包含M和X。 第二行包含M个不超过100的整数。
输出
输出数据有N行,每行是一组测试数据的结果。注意:两个数字之间只有一个空格。

样例输入

2
3 1
1 2 3
3 2
1 2 3

样例输出

3 5 4
8 9 7

Accepted代码

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int[] num=new int[1000];
        int first,i;
        int n=in.nextInt();
        while(n--!=0) {
            int m=in.nextInt();
            int x=in.nextInt();
            for(i=0;i<m;i++)
                num[i]=in.nextInt();
            for(i=0;i<x;i++) {
                first=num[0];
                for(int j=0;j<m-1;j++)
                    num[j]=(num[j]+num[j+1])%100;
                num[m-1]=(num[m-1]+first)%100;
            }
            for(i=0;i<m-1;i++)
                System.out.print(num[i]+" ");
            System.out.println(num[i]);
        }
        in.close();
    }
}

你可能感兴趣的:(OpenJudge,-,javastudy)