可以考虑使用大数模块。
经过计算。100! = 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
其各项相加为 648
[Fortran] 纯文本查看 复制代码 program www_fcode_cn
use big_integer_module
implicit none
integer i
type(big_integer) :: a
integer :: sum , b
a = 1
do i=1,100
a = a * i
!if ( modulo(a,10)==0 ) a = a/10
!// 上面一行添加后可减少位数
end do
sum=0
call print_big (a)
write(*,*)
do while (a>0)
b=modulo(a,10)
a = a / 10
sum=sum+b
end do
write(*,*) sum
end program www_fcode_cn
大数模块,在本站主站“代码”栏目中有提供
http://www.fcode.cn/code_gen-46-1.html |