问题标题: 酷町堂:小王课堂第二课~

0
0
已解决
王子健
王子健
初级天翼
初级天翼

很多大佬认为我的课堂不大好,但是,我的课堂只适用于低于我等级的人,你们都比我厉害请绕过,谢谢,不要喷~

下面进入正题:

今天带来一个超级简单的东东:while~~~~~~~~~~~

(你会认为是while?不可能,是do-while)

 

do-while主要格式:

功能:重复执行循环体,直到条件表达式的值为0。与while相比,do-while循环是先执行循环体,后判断表达式的当型循环。

例题[1.1] 对于给定的自然数n,求使1+2+3+4+5+......+i>=n成立的最小值i

 

分析:这个题目的实质是对一个有规律的数值序列求和。但是,数值序列的个数不能直接确定,我们需要以序列和的值作为结束的条件。因此,我们能做的只是不断地累加,直到序列之和>=n为止。

 

代码示例:

 

作业部分:今天没有作业,不然又要被喷了~但有个问题:程序最后为什么要减1?(第一个打上来的拿豆豆,因为比较简单,所以只有10个)

 


1
已采纳
刘英杰
刘英杰
新手天翼
新手天翼

虽然简单的要命,但是为了几个豆,我还是拼了

这里先要反驳一下其他人的观点,

如果把i的初始值赋为0,那第一次循环跟把i的初始值赋为1是一样的,不信自己分析一下程序运行过程

根据分析,do-while循环中每次都会先把i的值累加给sum,但是,根据计算,第一次累加时i原本为1,sum为0

累加后i为2,sum为1。

(为方便计算,我们假设n为10)

接下来,第4次循环,此时i已是4,而sum是10。上次循环时由于n不大于sum,所以还会再循环一次。

结果就是i又累加了一次(不止样例,由于直到型循环的特性,对于这道题只有输出i-1才是最优解)

导致结果又多了1

所以输出时结果需减1

(求关注,求采纳,求点赞)

(本人水平属于基础扎实,高级不会类型,对于较难问题可能看法不正确或错失重要线索,请见谅)

2
董宇昊
董宇昊
初级启示者
初级启示者

首先,do while至少循环一次,不管程序对不对,如果错了,还要循环第2次

所所以减去1就是正确的答案

0
李素妍
李素妍
新手天翼
新手天翼

太简单(简单念shui)了

0
曹砚青
曹砚青
中级光能
中级光能

你好棒哦~~~没事来小王课堂康康

曹砚青在2020-07-02 13:41:15追加了内容

ps:你的头像是蓝轩宇吧。我有一个霍雨浩的头像,要不要?

0
赵逸凡
赵逸凡
初级启示者
初级启示者

跟i的初值无关

↑↑小王课堂

0
王子逸
王子逸
新手天翼
新手天翼

你这个过于简单 没有技术含量  还是高级一点比较好

王子逸在2020-06-26 19:54:43追加了内容

没错 我和龙舟一个班

但我已经自学完了《c++游戏编程》

 

王子逸在2020-06-26 19:56:24追加了内容

@李泽远  《青春猪头少年不会梦到兔女郎学姐》

0
0
李瑞曦
李瑞曦
高级天翼
高级天翼

i的初值是1(这个很容易看出来的,你自己也说这个很简单啊)

0
陈喆鹏
陈喆鹏
资深光能
资深光能

你还能再无聊一点吗

 

0
赵泰来
赵泰来
高级光能
高级光能

Because the initial value of I is one

嘻嘻

0
0
0
0
黄子澄
黄子澄
中级天翼
中级天翼

还有,经验长的忒快了吧

0
张恩泽
张恩泽
高级天翼
高级天翼

如果你还能在无聊一点,我堂堂无聊界的枭雄也要拜你为师orz

0
潘晨皓
潘晨皓
高级天翼
高级天翼

我家有信息学一本通,找你这样的趋势,我早就发更高级的了,二叉树,三叉树。。。

我怀疑是不是这一句,他是要最小,所以……

我要回答