Fortran Coder

标题: 以循环来计算1/1!+1/2!+1/3!+...+1/10! [打印本页]

作者: 可乐。    时间: 2023-7-23 16:49
标题: 以循环来计算1/1!+1/2!+1/3!+...+1/10!
!以循环来计算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,这个咋办呀,无限不循环小数


作者: 楚香饭    时间: 2023-7-24 08:24
[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

作者: 可乐。    时间: 2023-8-1 13:26
楚香饭 发表于 2023-7-24 08:24
[mw_shl_code=fortran,true]program main
  implicit none
  real :: s = 0

原来如此!多谢
作者: kundada11    时间: 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?
作者: necrohan    时间: 2023-8-2 23:21
kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

因为阶乘从1开始
作者: 楚香饭    时间: 2023-8-3 08:55
kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

因为每次阶乘,都从1开始
作者: kundada11    时间: 2023-8-4 11:01
necrohan 发表于 2023-8-2 23:21
因为阶乘从1开始

懂了,谢谢!
作者: kundada11    时间: 2023-8-4 11:24
楚香饭 发表于 2023-8-3 08:55
因为每次阶乘,都从1开始

谢谢!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2