我用的VB遍的。.希望你满意,有两种方法
解:本题属于“穷举”问题,它的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解,这种算法称为穷举法(又称“枚举法”)。
Private Sub Form_Click()
Dim i%, j%, k%, m%, n% '用i,j,k分别代表1分、2分、5分枚数
n = 0 'n代表取法总数
For i = 1 To 20
For j = 1 To 20
k = 20 - i - j
m = i + 2 * j + 5 * k '用m代表取出20枚硬币的总值
If m = 60 Then '当20枚硬币的总值等60分,则输出
Print "1分:"; i, "2分:"; j, "5分:", k
n = n + 1
End If
Next j
Next i
Print "------------------------------------"
Print "总共有:"; n; " 取法"
End Sub
方法二、
Dim i%, j%, k%, m%, n% '用i,j,k分别代表1分、2分、5分枚数
n = 0 'n代表取法总数
For i = 1 To 20
For j = 1 To 20
For k = 1 To 20
m = i + 2 * j + 5 * k '用m代表取出20枚硬币的总值
If m = 60 And i + j + k = 20 Then '当硬币数为20枚,且总值等60分,则输出
Print "1分:"; i, "2分:"; j, "5分:", k
n = n + 1
End If
Next k
Next j
Next i
Print "------------------------------------"
Print "总共有:"; n; " 取法"
End Sub
10.打印如下图所示的杨辉三角形(杨辉三角形为一个下三角矩阵,每一行第一个和主对角线上元素都为1,其余每一个数正好等于它上面一行的同一列与前一列数之和)。
Private Sub Form_click()
Dim i%, j%
Const n = 7
Dim a(n, n) As Integer ' 将定义为n×n的数组
For i = 1 To n ' 给第一列和主对角线上的元素赋值1
a(i, i) = 1
a(i, 1) = 1
Next i
For i = 3 To n
For j = 2 To n - 1
a(i, j) = a(i - 1, j - 1) + a(i - 1, j) ' 计算除第一列和主对角线上之外元素的值
Next j
Next i
For i = 1 To n
Rem Print Tab(30 - i * 3); ' 定位每一行第一个元素输出位置
For j = 1 To i
Print a(i, j);
If a(i, j) < 10 Then ' 打印格式的设置
Print Space(3);
Else
Print Space(2);
End If
Next j
Print
Next i
End Sub