VB整数的拆分
答案:1 悬赏:10
解决时间 2021-01-11 18:34
- 提问者网友:王者佥
- 2021-01-11 09:31
VB整数的拆分
最佳答案
- 二级知识专家网友:我住北渡口
- 2021-01-11 11:06
Const maxn = 100
Dim a%(maxn), t%, n%
Sub comb(ByVal m%, ByVal k%, ByVal s%)
Dim i%, j%
For i = m To k Step -1
a(k) = i
If k > 1 Then
comb i - 1, k - 1, s
Else
t = 0
For j = a(0) To 0 Step -1
t = t + a(j)
Next
If t = s Then
n = n + 1: Debug.Print s; "=";
For j = a(0) To 2 Step -1
Debug.Print a(j); "+";
Next
Debug.Print a(1)
End If
End If
Next
End Sub
Sub main()
Dim ms%, ss%, i%, h%, k%, wmin%, wmax%
ss = InputBox("ss")
ms = InputBox("ms")
For i = 1 To ms
h = h + i
If h > ss Then wmax = i - 1: Exit For
Next
If i > ms Then
Debug.Print "..."
End
End If
h = 0
For i = 1 To ms
h = h + (ms - i + 1)
If h > ss Then wmin = i - 1: Exit For
Next
For k = wmin To wmax
a(0) = k
comb ms, k, ss
Next
Debug.Print "n="; n
End Sub
Dim a%(maxn), t%, n%
Sub comb(ByVal m%, ByVal k%, ByVal s%)
Dim i%, j%
For i = m To k Step -1
a(k) = i
If k > 1 Then
comb i - 1, k - 1, s
Else
t = 0
For j = a(0) To 0 Step -1
t = t + a(j)
Next
If t = s Then
n = n + 1: Debug.Print s; "=";
For j = a(0) To 2 Step -1
Debug.Print a(j); "+";
Next
Debug.Print a(1)
End If
End If
Next
End Sub
Sub main()
Dim ms%, ss%, i%, h%, k%, wmin%, wmax%
ss = InputBox("ss")
ms = InputBox("ms")
For i = 1 To ms
h = h + i
If h > ss Then wmax = i - 1: Exit For
Next
If i > ms Then
Debug.Print "..."
End
End If
h = 0
For i = 1 To ms
h = h + (ms - i + 1)
If h > ss Then wmin = i - 1: Exit For
Next
For k = wmin To wmax
a(0) = k
comb ms, k, ss
Next
Debug.Print "n="; n
End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息