救命啊!c语言游戏问题
如果包含1,就赢了。
2或3是注定要失败的。
4赢
5=2+3胜。
6=3+3胜。
7=1+6|2+5|3+4会失败。
8=1+7|2+6|3+5|4+4会失败。
9=2+7胜。
-
总结现行法律。
如果一个数可以由输的数组成,它就赢了。
4 = 2+2
5 = 2+3
6 = 3+3
这个很好判断。
其他数字应该是丢失的数字(根据法律)
所以只要找出中奖号码,然后判断初始条件中是否有中奖号码。
如果有,我们就输了。
如果没有,你就赢了(前提是证明数字只分为输和赢两种)
-
# include & ltstdio.h & gt
# include & ltconio.h & gt
# include & ltwindows.h & gt
int main()
{
int max=0,winnum[10001],input[10][2],I,j;
memset(winnum,-1,10001);
for(I = 0;我& lt10;i++)
{
scanf("%d %d ",& amp输入[i][0],& amp输入[I][1]);
if(输入[I][0]& gt;最大)
max = input[I][0];
if(input[I][1]& gt;最大)
max = input[I][1];
}
//输入10组数,找出其中最大的数。
winnum[1]= 0;
winnum[2]= 1;
winnum[3]= 1;
winnum[4]= 0;
for(I = 1;我& ltmaxi++)
{//找出所有比max小的中奖号码。
if(winnum[i]!= 0)
{
winnum[I]= 1;
//printf("i = %d\n ",I);
for(j = 2;j & ltmaxj++)
{
if(winnum[j] == 1)
{
winnum[I+j]= 0;//一个中奖号码由两个落选号码组成。
//printf("%d\n ",I+j);
}
}
}
}//判断中奖号码
for(I = 1;我& lt10;i++)
{
如果(!winnum[input[i][0]] ||!winnum[input[i][1]])
//如果谭笑有中奖号码,那么我们就没有中奖策略。
printf(" NO \ n ");
其他
//否则,谭笑有两个失败的数字,而我们有一个获胜的策略。
printf(" YES \ n ");
}
返回0;
}
//以上程序的前提是证明图形只有两种:输和赢。
//请LZ自己证明。我粗略的证明过,但无法用数学语言表达。
-
你想让我注释哪一部分?