请问for里面的函数这么解释 还有pow (2,i)
#include <stdio.h>#include <math.h>
int main()
{
unsigned long long sum = 0;
unsigned long long temp;
unsigned long long weight;
int i;
for (i=0; i < 64; i++)
{
temp = pow(2, i);
sum = sum + temp;
}
weight = sum / 25000;
printf("舍罕王应该给予达依尔%llu粒麦子!\n", sum);
printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", weight);
return 0;
} 我看这应该是国际象棋那道题
for每循环一次,计算一下第i+1个格子的麦子数( 因为i是从0开始,0代表第1个格子,以此次类推,i=63代表第64个格子),temp负责记录(i+1)个格子的麦子数
pow(2,i)代表2的i次幂,比如第一个格子是2^0=1个麦子,第二个格子是2^1=2个麦子........
sum则是把每次计算的格子里麦子数相加,即到i+1个格子一共有多少麦子数
后面weight就是重量换算了,就不讲了
{:10_256:}{:10_256:}{:10_256:}{:10_256:} nku新手 发表于 2017-1-16 22:28
我看这应该是国际象棋那道题
for每循环一次,计算一下第i+1个格子的麦子数( 因为i是从0开始,0代表第1个格子 ...
weight 是不是只是一个函数名,我也可以用 abcd来代替,感谢有你{:10_256:}{:10_256:} 本帖最后由 nku新手 于 2017-1-17 16:01 编辑
唐平 发表于 2017-1-17 00:12
weight 是不是只是一个函数名,我也可以用 abcd来代替,感谢有你
weight只是新定义的用来计算麦子重量的变量,它只是一个值,不是函数,当然,你想用abcd来存储麦子的总重量也没问题,因为你循环只是计算了麦子数,最后要求麦子重量,这里加了个变量weight用来将数量换算成重量
如果嫌多,可以不用,直接写printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", sum/25000); 新手学习中。。 nku新手 发表于 2017-1-16 22:28
我看这应该是国际象棋那道题
for每循环一次,计算一下第i+1个格子的麦子数( 因为i是从0开始,0代表第1个格子 ...
正解 i从0至63循环共64次,麦子后一个是前一个的两倍,则应该是等比数列,第一个是1个,即2的0次方,所以i也可以看作是2的指数。temp是一个临时变量,pow(2,i)的意思是计算2的i次方并赋值给临时变量temp,最后sum是总数,每次循环算出当前格子的麦子数量并和之前的总数相加。 C语言pow()函数:求x的y次方(次幂) 学习学习 mhp0114 发表于 2017-2-4 14:18
正解
请问你有没有c语言函数库,找了好久没找到。
页:
[1]