这是一道简单的循环题目
//http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1026
有M个小孩子围成一圈做游戏,每个小孩子都有一个初始的号码。游戏有X步,每一步的操作方法都相同:每个小孩子把自己手上的号码改写成自己原来的号码加上右手边的小孩子的号码除以100的余数。请问:经过X步之后,每个小孩子手上的号码是多少? 比如:有3个初始编号为{1,2,3}的小孩子,第一步操作完成之后,他们的编号变成了{1+2,2+3,3+1}即{3,5,4}。
//http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1026
#include "stdio.h"
#include "string.h"
__int64 map[10005];
int main()
{
int m,x;
int n;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&m,&x);
int i,j;
memset(map,0,sizeof(map));
for(i=0;i<m;i++)
scanf("%I64d",&map[i]);
for(i=1;i<=x;i++)
{
__int64 t=map[0];
for(j=0;j<m-1;j++)
{
map[j]+=map[j+1];
map[j]%=100;
}
map[j]+=t;
map[j]%=100;
}
for(i=0;i<m-1;i++)
printf("%I64d ",map[i]);
printf("%I64d\n",map[i]);
}
return 0;
}