作者 李梅莲
单位 许昌学院
阿基米德与国王下国际象棋(64格),国王输了,国王问阿基米德要什么奖赏?阿基米德对国王说:“只要在棋盘上第一个放一粒米,第二格放二粒,第三格放四粒,第四格放八粒……按这个方法放满整个棋盘就行。”国王以为要不了多少粮食,就随口答应了,结果国王输了。假设国王有1至10吨麦子,1吨=1000千克=1000000克,1粒麦子有0.1克,请问这些麦子能放到多少格?
输入格式:
输入国王拥有的麦子吨数,设麦子吨数x大于等于1吨,小于等于10吨
输出格式:
输出麦子占用的格数
输入样例1:
1
输出样例:1
24
输入样例2:
10
输出样例2:
27
#include<stdio.h>
int main()
{
int x;
scanf("%d", &x);
long long int all = x * 10000000;//米总数
long long int sum = 0;
long long int m = 1;
int n = 1;
while (sum < all)
{
m = 2 * m;//每格的米数
sum = sum + m;//得到的米数
n++;
}
printf("%d", n);
return 0;
}