C语言趣味小程序——无法实施的奖励

相信大家都听说过这样一个故事,古代有人发明了国际象棋,国王问他想要什么样的奖励。他说:在棋盘的第一个格子里放1颗麦粒,第2 个格子放2颗麦粒,第三个格子放4颗麦粒,第四个格子放8颗麦粒。

如果我们每次要在格子里放2的n次方颗麦粒,我们应该放在第几个格子里嘞。由此想出一个c语言小问题。因为1颗麦粒放第一个格子,2颗麦粒放第二个格子,而我们放的麦粒数是2的n次方,我们可以设两个变量int number=1,count=1,用count和我们我们要放的麦粒数X比较,如何count小于X,我们就然count乘2,在和X比较,同时number自加一。直到count大于X时循环结束。

#include<stdio.h>
int main()
{
	int X, number = 1, count = 1;
	printf("请输入要放入的麦粒数:");
	scanf("%d",&X);
	while (count < X)
	{
		count *= 2;
		number++;
	}
	printf("应放入第%d个格子",number);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值