鱼C论坛

 找回密码
 立即注册
查看: 2180|回复: 9

[已解决]请问for里面的函数这么解释 还有pow (2,i)

[复制链接]
发表于 2017-1-16 22:06:06 | 显示全部楼层 |阅读模式
1鱼币
#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;
}
最佳答案
2017-1-16 22:06:07
我看这应该是国际象棋那道题
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就是重量换算了,就不讲了

最佳答案

查看完整内容

我看这应该是国际象棋那道题 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就是重量换算了,就不讲了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-16 22:06:07 | 显示全部楼层    本楼为最佳答案   
我看这应该是国际象棋那道题
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就是重量换算了,就不讲了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-1-17 00:12:10 | 显示全部楼层
nku新手 发表于 2017-1-16 22:28
我看这应该是国际象棋那道题
for每循环一次,计算一下第i+1个格子的麦子数( 因为i是从0开始,0代表第1个格子 ...

weight 是不是只是一个函数名,我也可以用 abcd来代替,感谢有你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-17 15:56:34 | 显示全部楼层
本帖最后由 nku新手 于 2017-1-17 16:01 编辑
唐平 发表于 2017-1-17 00:12
weight 是不是只是一个函数名,我也可以用 abcd来代替,感谢有你


weight只是新定义的用来计算麦子重量的变量,它只是一个值,不是函数,当然,你想用abcd来存储麦子的总重量也没问题,因为你循环只是计算了麦子数,最后要求麦子重量,这里加了个变量weight用来将数量换算成重量

如果嫌多,可以不用,直接写printf("如果每25000粒麦子为1kg,那么应该给%llu公斤麦子!\n", sum/25000);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-2 09:38:45 | 显示全部楼层
新手学习中。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-4 14:18:17 | 显示全部楼层
nku新手 发表于 2017-1-16 22:28
我看这应该是国际象棋那道题
for每循环一次,计算一下第i+1个格子的麦子数( 因为i是从0开始,0代表第1个格子 ...

正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-7 17:20:26 | 显示全部楼层
i从0至63循环共64次,麦子后一个是前一个的两倍,则应该是等比数列,第一个是1个,即2的0次方,所以i也可以看作是2的指数。temp是一个临时变量,pow(2,i)的意思是计算2的i次方并赋值给临时变量temp,最后sum是总数,每次循环算出当前格子的麦子数量并和之前的总数相加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-7 20:24:10 | 显示全部楼层
C语言pow()函数:求x的y次方(次幂)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-27 21:56:46 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-2-28 17:09:00 | 显示全部楼层

请问你有没有c语言函数库,找了好久没找到。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-30 22:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表