1026 做游戏

这是一道简单的循环题目

//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;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值