永发信息网

[VB编程]难题一题

答案:4  悬赏:60  手机版
解决时间 2021-07-19 03:51
  • 提问者网友:了了无期
  • 2021-07-18 08:15

要求:

  在InputBox对话框中输入任意数字,确定后窗体上输出其所有的子集。

  可以忽略集合的书写形式,输出子集的顺序也不做要求。

  子集之间不一定要用逗号,只要空出间隙即可。

  使用VB的任何版本编写的程序代码我都不会介意的。

例:

  输入1后——输出Φ,1

  输入12后——输出Φ,1,2,12

  输入123后——输出Φ,1,2,3,12,13,23,123

  输入1234后——输出Φ,1,2,3,4,12,13,14,23,24,34,123,124,134,234,1234

  输入……

规律:

  输入1位数字,则输出2个子集(21=2)

  输入2位数字,则输出4个子集(22=4)

  输入3位数字,则输出8个子集(23=8)

  输入4位数字,则输出16个子集(24=16)

  ……

  输入N位数字,则输出2N个子集

最佳答案
  • 五星知识达人网友:迷人又混蛋
  • 2021-07-18 08:35

先帮你做第2个 第一题我想想


Private Sub Command1_Click()
a = InputBox("请输入一个整数", "求平方", c)
c = 2 ^ a
Print c
End Sub

全部回答
  • 1楼网友:轻雾山林
  • 2021-07-18 10:21
这个是一个求2的N次方的例子啊怎么了啊
  • 2楼网友:孤老序
  • 2021-07-18 09:11

说下我的思路吧。。代码没想好怎么写。。

利用递归,假如是n位数字,则递归n次,每一位都写一个循环for i = 0 to 1;

4位数就是4个for循环

最后用每一位上的数字*当前层循环上的0或者1;

如果4层循环都是0,就表示空集合,都是1的话就是1234,

0001,就是4

0010,就是3

0011,就是34

0100,就是2

1000,就是1

以此类推。。貌似2进制做比较容易 没想出来怎么做

  • 3楼网友:春色三分
  • 2021-07-18 09:06

这个最简单 , 2的N次方就行了, 每个元素出现与否只有两种可能。

以数位进制的形式就OK了。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯