急求帮助,拿石子问题
一堆个数为n的石子,Alice和Bob轮流取。Alice一次能取个石子,Bob一次能取个石子。
拿到最后一个石子的人赢。
如果Alice必胜,返回1
如果Bob必胜,返回-1
如果没有人有必胜策略,返回0
用C语言编写,谢谢各位大佬 示例:
输入:8,3,3 输出:-1
输入:3,4,2 输出:1 本帖最后由 jhq999 于 2022-5-30 10:51 编辑
洛无极 发表于 2022-5-29 21:43
示例:
输入:8,3,3 输出:-1
输入:3,4,2 输出:1
int main()////////必胜的诀窍是每次给对方剩下对方最大取值加1的整数倍
{
int n=0,a=0,b=0;
scanf("%d,%d,%d",&n,&a,&b);
if(n<=a)printf("a");
else if(a>b)printf("a");
else if(a<b)printf("b");
else
{
if(n%(a+1))printf("a");
else
printf("b");
}
return 0;
}
jhq999 发表于 2022-5-30 10:31
兄弟,能按照【1,q】,【1,p】输入,-1,1输出吗?你的能执行,但我萌新,不会改,麻烦你了,谢谢 洛无极 发表于 2022-5-30 20:29
兄弟,能按照【1,q】,【1,p】输入,-1,1输出吗?你的能执行,但我萌新,不会改,麻烦你了,谢谢
int main()////////必胜的诀窍是每次给对方剩下对方最大取值加1的整数倍
{
int n=0,a=0,b=0;
scanf("%d,%d,%d",&n,&a,&b);
if(n<=a)printf("a");
else if(a>b)printf("1");
else if(a<b)printf("-1");
else
{
if(n%(a+1))printf("1");
else
printf("-1");
}
return 0;
}
jhq999 发表于 2022-5-30 21:06
谢了,但这道题不需要定义p、q什么的吗? jhq999 发表于 2022-5-30 21:06
而且这个代码,输入3 4 2 ,输出的结果也为-1,我试了其他得数,可能是巧合,但所有输出结果都是-1{:5_104:} 本帖最后由 jhq999 于 2022-5-30 22:46 编辑
洛无极 发表于 2022-5-30 21:14
而且这个代码,输入3 4 2 ,输出的结果也为-1,我试了其他得数,可能是巧合,但所有输出结果都是-1{:5_10 ...
示例:
输入:8,3,3 输出:-1
输入:3,4,2 输出:1
输入3,4,2不是3 4 2 输入之间的符号要和scanf里的对应
输出是a,你把那个printf("a");改成printf("1");,我忘改了 jhq999 发表于 2022-5-30 22:43
示例:
输入:8,3,3 输出:-1
输入:3,4,2 输出:1
谢谢 洛无极 发表于 2022-5-30 21:12
谢了,但这道题不需要定义p、q什么的吗?
1不用定义,p就是a,q就是b jhq999 发表于 2022-5-30 22:52
1不用定义,p就是a,q就是b
我已经改好了,万分感谢
页:
[1]