| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1938 人关注过本帖
标题:[求助]VB一道题目 |不知道哪里错了
只看楼主 加入收藏
AV终结者
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-11-3
收藏
 问题点数:0 回复次数:10 
[求助]VB一道题目 |不知道哪里错了
“完全数”是指一个数恰好等于它的因子之和,如6 的因子为 1 2 3 ,而6 = 1 + 2 + 3,因而6就是完全数,编写程序
找出1-1000之间的所有完全数
Private Sub Command1_Click()
 Dim j As Integer, i As Integer, s As Long
 i = 1
 j = 1
 s = 0
 While i <= 1000
    While j <= i - 1
        If i Mod j = 0 Then
        s = s + j
        End If
        j = j + 1
    Wend
    If i = s Then
    Print i
    End If
  i = i + 1
 Wend
End if

______________________________________________________________________end

帮忙啊 谢谢
搜索更多相关主题的帖子: 编写程序 
2007-12-06 21:52
刨子头
Rank: 1
等 级:新手上路
威 望:1
帖 子:319
专家分:0
注 册:2007-9-24
收藏
得分:0 
没细看,但后面的这个是什么意思?你的end sub呢?
______________________________________________________________________end
2007-12-07 19:48
zhou
Rank: 1
等 级:禁止发言
帖 子:429
专家分:0
注 册:2006-6-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-12-08 09:38
XieLi
Rank: 1
等 级:新手上路
威 望:1
帖 子:762
专家分:0
注 册:2007-7-24
收藏
得分:0 
什么叫完全数!

拥有蓝天的白云,拥有你的我.
2007-12-08 10:48
zhou
Rank: 1
等 级:禁止发言
帖 子:429
专家分:0
注 册:2006-6-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-12-08 15:18
zhou
Rank: 1
等 级:禁止发言
帖 子:429
专家分:0
注 册:2006-6-16
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2007-12-08 15:19
wjputi
Rank: 2
等 级:论坛游民
帖 子:14
专家分:22
注 册:2007-12-11
收藏
得分:0 
其实主要是你的s后面没有清零吧、
上面周的是放在每次循环开始处
也可以在最开始
然后最后清零
 Dim j As Integer, i As Integer, s As Long
        i = 1
        j = 1
        s = 0
        For i = 1 To 10000
            For j = 1 To i - 1
                If i Mod j = 0 Then
                    s = s + j
                End If
            Next
            If i = s Then
                List1.AddItem i
            End If
            s = 0
        Next
    End Sub
上面zhou的多1个定义范围
2007-12-11 11:44
shitianwang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-12-10
收藏
得分:0 
Private Sub Command1_Click()
Dim j As Integer, i As Integer, s As Long
i = 1
j = 1
s = 0
While i <= 1000
    While j <= i - 1
        If i Mod j = 0 Then
        s = s + j
        End If
        j = j + 1
    Wend
    If i = s Then
    Print i
    End If
   
        s = 0                                  '每次都要清零后才能再次相加比较
    j = 1                                    'j也是每次都是从1开始的吧!!
       i = i + 1
Wend


End Sub
2007-12-11 15:46
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
程序代码:
Private Sub Command1_Click()
    'i是被除数 ,j 是除数 , sum 是记录因子的和*/
    Dim i  As Integer, j As Integer, sum     As Integer
    For i = 1 To 1000 '循环从1到1000
        sum = 0
        For j = 1 To i - 1 '求余数循环 但是剔除本身
            If i Mod j = 0 Then  '如果求余为0 那么j就是i的余数
                sum = sum + j '然后累加余数
            End If
        Next
        If sum = i Then Print sum  '判断如果余数之和等于他本身,那么就输出这个数
    Next
End Sub

2007-12-11 17:38
please000
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2007-8-8
收藏
得分:0 
找因子循环至其半数即可,节省点时间。。呵呵
    Dim I As Integer
    Dim J As Integer
    Dim SUM As Long
    For I = 1 To 10000
        SUM = 0
        For J = 1 To Int(I / 2) + 1 '找因子从1开始至其半数
            If I Mod J = 0 Then
                SUM = SUM + J
            End If
        Next J
        If SUM = I Then Print I; SUM    '打印结果和sum
    Next I

计算我的未来
2007-12-11 19:23
快速回复:[求助]VB一道题目 |不知道哪里错了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051534 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved