Vb程序设计五猴分桃问题
vb吧
全部回复
仅看楼主
level 4
小cai 楼主
有大佬知道怎么找到变量x的取值嘛,后面编程会了,不知道怎么设定变量的取值
2022年05月09日 08点05分 1
level 15
五猴分桃问题是啥?
变量x代表啥?
你这么问问题,谁知道怎么回答
2022年05月09日 09点05分 2
有5个猴子第一个猴子把桃分了5分剩了一个吃掉了,然后拿走了一份,剩下了四分,第二个猴子把这四分分成5分剩下一个吃掉了,以此类推,第五个猴子分成五分,剩一个吃掉,拿走了一份,求至少多少桃子
2022年05月09日 09点05分
level 4
小cai 楼主
五只猴子一-起摘了一堆桃子,因为太累,五只猴子决定先睡一觉再
分。 不久,其中一只猴子醒来了,它见别的猴子没有醒来,便将-堆
桃子平均分成 5 份,结果多了一个,就将多的这个吃了,拿走其中的
一份并离开。又不久,第二只猴子醒来了,它不知道有一个同伴已经
拿走过桃子,便又将剩下的桃子平均分成 5 份,发现也多了一个,同
样吃了这一个,拿走其中的一-份。如此类推第 3 只,第 4 只,第 5
只猴子都是这样分、吃、拿走。问这 5 只猴子至少摘了多少个桃子?
根据上述描述,编制程序解决问题。
2022年05月09日 09点05分 3
level 15
你只回答了我一个问题,“变量x代表啥”这个问题仍然没有回答
按照我的思路,这个x可以代表最后一只猴子分到的桃子个数(不算吃掉的那一个),然后x从1开始依次递增,按照问题给定的规则向前递推,直到有一个x值能够推出符合规则的初始值为止
2022年05月09日 10点05分 4
level 12
这个假设最后一只猴分的桃子为6个,得到这样一个公式,(((((5+1)*5+1)*5+1)*5+1)*5+1)=3906
2022年05月09日 12点05分 5
应该先除以4再乘以5吧[呵呵]
2022年05月09日 13点05分
@DiverAZAM 为啥要除4,第五只猴分6只桃,每只一个,剩下一个
2022年05月09日 13点05分
@DiverAZAM 那第4只猴就是分31个桃,每只6个剩一个,第三只猴,分的156个,每只分到31个剩下一个,第二只猴是分781每只155个剩下一个
2022年05月09日 13点05分
@DiverAZAM 不对,不是这样分
2022年05月09日 13点05分
level 11
Option Explicit
Private Sub Command1_Click()
Dim x As Double
Dim y As Double
Dim b As Boolean
Dim i As Integer
Do
x = x + 1
y = x
b = False
Do
For i = 1 To 5
If y < 6 Then Exit Do
If (y - 1) Mod 5 = 0 Then
y = (4 * y - 4) / 5
Else
Exit Do
End If
Next i
If y > 0 Then b = True
Loop Until True
If b Then Exit Do
Loop Until x >= 9999 'x上限也可以超过9999
Print "x=" & x
End Sub
2022年05月09日 12点05分 6
b = False这一行可以省去
2022年05月09日 13点05分
如果省去【If y > 0 Then b = True】就要改为【If y > 0 Then b = True Else b = False End If】;或者【 b = IIf(y >0, True, False) 】。
2022年05月10日 03点05分
@Luosen56 不能写成b=y>0么
2022年05月10日 03点05分
【b=y>0】这个表达式中都是【关系连接符】,要从左到右依次计算。可能写成【b = (y > 0) 】好一些哟。
2022年05月10日 03点05分
level 12
2022年05月09日 14点05分 7
level 15
楼上两位都是正向推导的啊,就不能逆推回去么,能把循环次数减少到十分之一都不到呢[滑稽]
Do
x = x + 1
n = x
For i = 5 To 2 Step -1
n = n * 5 + 1
If n Mod 4 <> 0 Then Exit For
n = n \ 4
Next i
Loop While i > 1
Print n * 5 + 1
2022年05月09日 14点05分 8
和我想的一样,但是我写不出来,我是小白
2022年05月10日 03点05分
1