📄 zjx.txt
字号:
#include <stdio.h>
unsigned int a[11];
int n;
void init1()
{int i;
printf("input n(2--10):"); scanf("%d",&n);
for (i=1;i<=n;i++)
{printf("input No.%d Number of stone:\n",i);
scanf("%d",&a[i]);}
}
void status()
{int i;
printf("Now remainder:\n");
for (i=1;i<=n;i++) printf(" No.%d rem: %u \n",i,a[i]);
}
unsigned int sum1()
{unsigned int s; int i;
s=0;
for(i=1;i<=n;i++) s+=a[i];
return s;
}
unsigned int xorall()
{unsigned int s; int i;
s=0;
for (i=1;i<=n;i++) s^=a[i];
return s;
}
main()
{unsigned int t;
int i,s,e;
init1();
while (sum1())
{if (xorall()==0)
{for (i=1;i<=n;i++)
if(a[i]>0)
{printf("computer take 1 from No.%d \n",i);
a[i]--; goto loop2;}
}
else
for (i=1;i<=n;i++)
{ s=a[i]-(xorall()^a[i]) ;
if (s>0)
{printf("computer take %u from No.%d \n",s,i);
a[i]^=xorall();
goto loop2;}
}
loop2:;
if(sum1()==0)
{printf("computer win!"); break;}
status();
while (1)
{printf("Input your selection
(examp. 1 2 means take 2 from No.1):\n");
scanf("%d %u",&e,&t);
if ((e>=1)&&(e<=n)&&(a[e]>=t))
{a[e]-=t; goto loop1;}
else
printf("data error! re-input...\n");
}
loop1:;
if(sum1()==0)
{printf("you win!"); break;}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -