Fortran Coder

查看: 2084|回复: 7
打印 上一主题 下一主题

[数值问题] 以循环来计算1/1!+1/2!+1/3!+...+1/10!

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
7 点
跳转到指定楼层
楼主
发表于 2023-7-23 16:49:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
!以循环来计算1/1!+1/2!+1/3!+...+1/10!
[Fortran] 纯文本查看 复制代码
program main
    implicit none
    real(kind=4)::s=0
    integer(kind=4)::m=1
    integer i,j
    do i=1,10
        do j=1,i
            m=m*j
        end do
        s=s+real(1/real(m))
    end do
    write(*,*)s
    stop
    end

!程序运行出来是infinity,这个咋办呀,无限不循环小数

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

沙发
发表于 2023-7-24 08:24:59 | 只看该作者
[Fortran] 纯文本查看 复制代码
program main
  implicit none
  real :: s = 0
  integer i,j,m
  do i=1,10
    m = 1 !//这里很重要
    do j=1,i
      m=m*j
    end do
    s=s+1.0/m
  end do
  write(*,*)s
end program main

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
7 点
板凳
 楼主| 发表于 2023-8-1 13:26:30 | 只看该作者
楚香饭 发表于 2023-7-24 08:24
[mw_shl_code=fortran,true]program main
  implicit none
  real :: s = 0

原来如此!多谢

3

帖子

0

主题

0

精华

新人

F 币
23 元
贡献
11 点
地板
发表于 2023-8-2 19:11:37 | 只看该作者
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

250

帖子

2

主题

0

精华

宗师

F 币
1731 元
贡献
872 点

规矩勋章

5#
发表于 2023-8-2 23:21:11 | 只看该作者
kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

因为阶乘从1开始

736

帖子

4

主题

0

精华

大师

农村外出务工人员

F 币
700 元
贡献
359 点

新人勋章爱心勋章水王勋章元老勋章热心勋章

6#
发表于 2023-8-3 08:55:31 | 只看该作者
kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

因为每次阶乘,都从1开始

3

帖子

0

主题

0

精华

新人

F 币
23 元
贡献
11 点
7#
发表于 2023-8-4 11:01:22 | 只看该作者
necrohan 发表于 2023-8-2 23:21
因为阶乘从1开始

懂了,谢谢!

3

帖子

0

主题

0

精华

新人

F 币
23 元
贡献
11 点
8#
发表于 2023-8-4 11:24:52 | 只看该作者
楚香饭 发表于 2023-8-3 08:55
因为每次阶乘,都从1开始

谢谢!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-12-23 18:28

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表