来自「这是ACM程序设计大赛中的一道题」· 代码 · 共 27 行

TXT
27
字号
/*----------------------------解题思路--------------------------------*/
/*经过若干次手动计算会发现这样一个规律:不论多少块金子,猫老大和King用最优策略拿,到最后会等效为一块,两块,三块金子的问题,即
若剩一块或两块,则猫老大必赢,若为零则King赢。最后问题就等效为一个数模3后的树的比较了。*/
#include<stdio.h>
#define MAX 1000
void main()
{
	char a[MAX];
	int i,j,m,k;
	for(i=0;i<MAX;i++)
		a[i]=-1;
	printf("请输入金块数:");
	scanf("%s",&a);
	j=0;
	m=a[j];
	while(a[j]!=-1)
	{
		k=m%3;
		j++;
		m=10*k+a[j];
	}
	if(k==0)
		printf("King will win\n");
	if(k==1||k==2)
	{printf("Mao lao da will win\n");
	printf("%d",k);}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?