| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1711 人关注过本帖
标题:来帮忙怎么用for each……next 实现100以内各奇数阶乘之和?
只看楼主 加入收藏
zzg0615
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:5 
来帮忙怎么用for each……next 实现100以内各奇数阶乘之和?
如题!
新手上路,还请在家多多指导哟,呵呵,谢谢!
搜索更多相关主题的帖子: 新手上路 
2011-06-09 21:49
Artless
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:4211
专家分:28888
注 册:2009-4-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

无知
2011-06-09 23:57
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:10 
版本一 : 有 For Each ... Next

程序代码:
Option Explicit

Private Type ABC
    MyCollection() As Long
End Type

Private Num As ABC

Private Sub Form_Initialize()
    ReDim Num.MyCollection(0)
End Sub

Private Sub Form_Load()
Dim MyObject As Variant
Dim i As Long, j As Long, k As Long, Total As Long

    For i = 0 To 100
        If i Mod 2 = 1 Then
            ReDim Preserve Num.MyCollection(j)
            Num.MyCollection(j) = i
            j = j + 1
        End If
    Next i
   
    Total = 0: i = 0: j = 0: k = 0
   
    For Each MyObject In Num.MyCollection    ' 對集合物件裏的成員作一次迴圈執行。

        Do While i < MyObject + 1
            For k = i To MyObject
                Total = Total + i
            Next k
            i = i + 1
            If i = 100 Then Exit Do
        Loop
       
        Text1.Text = CLng(Text1.Text) + Total
       
    Next MyObject
   
    MsgBox Text1.Text

End Sub

版本二:验证版(没有 For Each ... Next)

程序代码:
Option Explicit

Private Sub Form_Load()
Dim i As Long, j As Long, k As Long, Total As Long
Dim ii As Integer

    Total = 0: i = 0: j = 0: k = 0

    For ii = 0 To 100
        If ii Mod 2 = 1 Then
            j = ii
           
            Do While i < j + 1
                For k = i To j
                    Total = Total + i
                Next k
                i = i + 1
            Loop
           
            Text1.Text = CLng(Text1.Text) + Total
           
        End If
       
    Next ii
   
    MsgBox Text1.Text
   
End Sub

答案都一样〜有人可以用计算机点看看结果对不对吗?(懒得重写用以前贴的改来的)

感觉不大对〜这好像不是阶层〜贴阶层那篇我找不着了〜
这应该是是0-100奇数1 +(1+3)+(1+3+5)+......(1+....+99)的解〜

等我找到我贴的写阶层那篇再补回来〜


[ 本帖最后由 wube 于 2011-6-10 00:38 编辑 ]

不要選我當版主
2011-06-10 00:31
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:10 
找好久终于找到了〜但是总合数字太大〜只能用科学记号表示〜

程序代码:
Option Explicit

Private Type ABC
    MyCollection() As Long
End Type

Private Num As ABC

Private Sub Form_Initialize()
    ReDim Num.MyCollection(0)
End Sub

Private Sub Form_Load()
Dim MyObject As Variant, Limit As Integer
Dim i As Double, j As Double, k As Double, Total As Double

    Total = 0: i = 0: j = 0: k = 0
   
    Limit = Val(InputBox("Limit Number is ?"))

    For i = 0 To Limit
        If i Mod 2 = 1 Then
            ReDim Preserve Num.MyCollection(j)
            Num.MyCollection(j) = i
            j = j + 1
        End If
    Next i

    For Each MyObject In Num.MyCollection    ' 對集合物件裏的成員作一次迴圈執行。

        i = MyObject : k = 1

        For j = i To 1 Step -1
            k = k * j
        Next j

        Total = Total + k : Text1.Text = Total
   
    Next MyObject

    Text1.Text = "Sum : " & Total       '可有可無

End Sub

有人可以用计算机点看看结果对不对吗?(懒得重写用以前贴的改来的)
感觉老是在写作业〜好像还在学校念书〜

图片附件: 游客没有浏览图片的权限,请 登录注册


图片附件: 游客没有浏览图片的权限,请 登录注册



[ 本帖最后由 wube 于 2011-6-10 03:05 编辑 ]

不要選我當版主
2011-06-10 03:00
heweiily
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-10
收藏
得分:0 
提供思路
先把奇数找出来放到一个数组里,再编一个过程求阶层的,最后用一个循环求和(里面调用求阶乘的过程)
2011-06-10 11:43
zzg0615
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-6-9
收藏
得分:0 
谢谢了
2011-06-10 22:52
快速回复:来帮忙怎么用for each……next 实现100以内各奇数阶乘之和?
数据加载中...
 
   



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

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