可乐。 发表于 2023-7-23 16:49:48

以循环来计算1/1!+1/2!+1/3!+...+1/10!

!以循环来计算1/1!+1/2!+1/3!+...+1/10!
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:59

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:30

楚香饭 发表于 2023-7-24 08:24
program main
implicit none
real :: s = 0


原来如此!多谢

kundada11 发表于 2023-8-2 19:11:37

新手提问,我想知道为什么m=1的赋值必须写在循环体中?

necrohan 发表于 2023-8-2 23:21:11

kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

因为阶乘从1开始

楚香饭 发表于 2023-8-3 08:55:31

kundada11 发表于 2023-8-2 19:11
新手提问,我想知道为什么m=1的赋值必须写在循环体中?

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

kundada11 发表于 2023-8-4 11:01:22

necrohan 发表于 2023-8-2 23:21
因为阶乘从1开始

懂了,谢谢!

kundada11 发表于 2023-8-4 11:24:52

楚香饭 发表于 2023-8-3 08:55
因为每次阶乘,都从1开始

谢谢!:-lol
页: [1]
查看完整版本: 以循环来计算1/1!+1/2!+1/3!+...+1/10!