gpt4 book ai didi

fortran - 如何退出嵌套的 Fortran 循环?

转载 作者:行者123 更新时间:2023-12-02 17:07:15 25 4
gpt4 key购买 nike

我正在尝试编写一个程序(在 Fortran 95 中),它将 N 以内的自然数最小分解为最多 4 个正整数之和。

我一直在尝试添加和删除语句一段时间,以使其仅停止在最小的分解上,但我没有取得任何进展。如何让程序在找到最小分解后立即停止?

PROGRAM SummeQuadrat
IMPLICIT NONE
real:: start,finish
integer:: a,b,c,d,g,x,y

write(*,*) "Max n"
read (*,*) y
call cpu_time(start)

do x=1,y,1

do a=0,x,1
do b=a,x-a,1
do c=b,x-b,1
do d=c,x-c,1
if (a**2+b**2+c**2+d**2 .eq. x) then
write(*,*) "x=",x,d,c,b,a

end if
end do

end do
end do
end do
end do
call cpu_time(finish)
write(*,*)finish-start
end program SummeQuadrat

最佳答案

正如我在评论中所解释的,我不确定您只是问如何打破循环或更多。

您可以使用EXIT语句跳出任何循环。要退出当前所在循环以外的循环,请使用带标签的循环,并使用 EXIT 语句中的标签退出该特定循环。

outer: do x = 1, y

do a = 0, x
do b = a, x-a
do c = b, x-b
do d = c, x-c
if (a**2+b**2+c**2+d**2 == x) then
write(*,*) "x=",x,d,c,b,a
if (minimal(a,b,c,d)) exit outer
end if
end do

end do
end do
end do
end do outer

关于fortran - 如何退出嵌套的 Fortran 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46632570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com