本文主要是介绍魔王的难题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
魔王的难题
- 描述
- 小a和小b被魔王抓走了,魔王这个人很喜欢有智慧的人,所以给他们出了一道难题
只要他们能够解决问题,就会放了他们。好吧为了生存,他们没得选择。魔王分别
让小a和小b知道一个数字q,w (他们互相不知道对方的数字),然后魔王让他们
猜对方的数字。魔王会给一个提示,就是他们两的乘积不是e就是r。
(w=2*q;e=2*q*q;r=4*q*q;他们两不知道对方的数字,也不知道各个数字间的联
系) 不能明示或暗示对方自己的数字,不然他们就完蛋了。
小a和小b都很聪明很快就想出了对策,他们经过多次交流。
小a: 我不知道
小b: 我也不知道
小a: 我还是不知道
小b: 我也还是不知道
小a: 我知道
得到了答案(默认都是小a先开始)
- 输入
- 输入一个数q(0<q<=100),保证q是2的整数次。(多组数据) 输出
- 每组输入数据的输出占一行,输出一个整数(最少交流的次数)。 样例输入
-
2
样例输出 -
5
提示 - 当其中一个人知道了对方的数字,游戏就算结束了。 上传者
- 输入一个数q(0<q<=100),保证q是2的整数次。(多组数据))
01.
#include<stdio.h>
02.
int
main()
03.
{
04.
int
a;
05.
while
(~
scanf
(
"%d"
,&a))
06.
{
07.
if
(a==1)
08.
{
09.
printf
(
"3\n"
);
10.
}
11.
else
if
(a==2)
12.
{
13.
printf
(
"5\n"
);
14.
}
15.
else
if
(a==4)
16.
{
17.
printf
(
"7\n"
);
18.
}
19.
else
if
(a==8)
20.
{
21.
printf
(
"9\n"
);
22.
}
23.
else
if
(a==16)
24.
{
25.
printf
(
"11\n"
);
26.
}
27.
else
if
(a==32)
28.
{
29.
printf
(
"13\n"
);
30.
}
31.
else
if
(a==64)
32.
{
33.
printf
(
"15\n"
);
34.
}
35.
}
36.
return
0;
37.
}
刘祥昆
//数小,一个一个来;
(
这篇关于魔王的难题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!