一道VB菜鸟题

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:57:09
人口为13亿,年增长率为1%,用循环语句编写出多少年后增长到20亿。

拜托了!

Private Sub Form_Click()
Dim i As Single
i = 13
s = 0
Do While i <= 20
i = i * (1 + 0.01)
s = s + 1
Loop
Print s
End Sub

一三楼都是错误的 答案是44年 题目要求增长到20亿 不是不超过20亿 所以要加个等号 虽然这题没刚好等于20亿 但程序就应该这么个思路去做~以免有错产生i<=20 底数是13亿 一楼却是12.。
三楼的这种编程思路不好~ 像这种不知道循环几次的问题 最好还是不要用FOR
要是20亿是程序做好时外部输入的 那你程序只能循环100次 那么超过35亿也就是100年~你的程序就会出错了。
二楼 13亿 还真得写那么多个零吗?不知道2数同时扩大或缩小相同的倍数 它们之间的关系是不变的吗? 13亿和20亿完全可以缩小至13和20来计算

'寒,没注意,搞错了,修改如下

Private Sub Command1_Click()
Dim n
n = 13
For i = 0 To 100
n = 1.01 * n
If n >= 20 Then MsgBox i & "年后,人口增长到20亿!": Exit For
DoEvents
Next i
End Sub

Private Sub Form_Click()
Dim i As Single
i = 12
s = 0
Do While i < 20
i = i * (1 + 0.01)
s = s + 1
Loop
Print s
End Sub

Dim 人口 As Long, i As Integer
人口 = 1300000000
i = 0
Do While 人口 < 2000000000