救命啊!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自己证明。我粗略的证明过,但无法用数学语言表达。

-

你想让我注释哪一部分?