c语言枚举法鸡兔同笼,枚举算法 及其程序实现——新鸡兔同笼(11页)-原创力文档...

3.16 枚举算法及其程序实现

——新鸡兔同笼

例:鸡兔同笼——解析法

Private Sub Command1_Click()

h Val(text1.Text)

l Val(text2.Text)

r (l-2*h)/2

c h – r

Label1.caption str(c )

Label2.caption str(r)

End Sub

用 “穷举”的方式解决

 方法:

³ 当兔子是1 ,鸡则是h-1 ,脚为?=1*4+(h-1)*2

³ 当兔子是i ,鸡则是h-i ,脚为?

 找到则退出循环

h val(text 1.Text)

l val(text2.Text)

For i 1 To h

If l i * 4 + (h - i) * 2 Then

Exit For

End If

Next i

Label5.Caption h - i

Label6.Caption i

如果找不到正确答案, If i h + 1 Then

将会出现什么情况? Label5.Caption "err"

Label6.Caption "err"

Else

Label5.Caption h - i

Label6.Caption i

End If

枚举法 (穷举法)

 按照问题要求确定问题解的大致范围,然

后在此范围内对这些解进行一一列举,再

对当前列举出的解进行是否满足问题要求

的判断,最后把符合要求的解输出直到所

有可能的解全部列举完毕。

确定范围 情况枚举 条件判断 得到真解

练习1 :完全平方数

 求出1-100之内的完全平方数。 (若一个数

能表示成某个整数的平方的形式,则称这

个数为完全平方数)

Dim i As Integer

For i 1 To 100

If i Int(Sqr(i)) ^ 2 Then

List 1.AddItem i

End If

Next i

列表框List控件

 在list1 中添加元素 “hello”

 List1.additem “hello”

 清空list1 :

³ List1.clear

 Additem和clear是方法名。

练习2 :水仙花数

 水仙花数是指一个 3 位数,它的每个位上

的数字的 3次幂之和等于它本身 (例如:

1^3 + 5^3+ 3^3 = 153)。

 求出100-999有多少个水仙花数。

帮助

 如何取出百、十、个位的数字?

³ 看做字符串,用mid 函数

³ 用 “\”,mod等运算符组合。

® 123 mod 10=3

® 123 \100 =1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值