我需要一些帮助,使用FORTRAN代码在订单中生成一对数字。
订单如下。
loop_1:
1,2 2,3 3,4 4,5 5,6 6,7 7,8 ..... until <= 2000
loop_2:
1,3 3,5, 5,7 7,9 9,11 11,13 ........until <= 2000
loop_3:
1,4, 4,7 7,10 10,13 13,17 ..... until <= 2000
loop_4:
1,5 5,9 9,13 13,17 17,21 .... until <= 2000
。 。 。 。 直到loop_100:
我尝试使用简单的代码,例如
program loopJump
implicit none
!
integer :: i,j,k
do k = 1, 6
do i = 1, 5
j=(i+k)
print*, i," ",j
enddo
enddo
stop
end
但我无法得到我想要的。
提前致谢
答案 0 :(得分:1)
这是一种方法。 编辑:格式正确。
program loopJump
implicit none
!
integer :: i,j,k
integer :: loopend
character(len=*),parameter :: fmt1 = "('loop_',I1,' ',I4)"
character(len=*),parameter :: fmt2 = "(', ',I4,', ',I4 )"
do k = 1, 6
write(*,fmt1,advance='NO') k,1
loopend = (2000-1)/k
do i = 1, loopend
j=1+i*k
write(*,fmt2,advance='NO') j,j
enddo
write(*,fmt="(2X)")
enddo
stop
end program
EDIT2:经过仔细研究后,似乎Kerrek SB通过上述评论提前回答了这个问题。使用该方法,循环将如下所示:
do k = 1, 6
write(*,fmt1,advance='NO') k,1
do i = k+1, 20, k
write(*,fmt2,advance='NO') i,i
enddo
write(*,fmt="(2X)")
enddo
答案 1 :(得分:0)
我不知道fortran,但这个伪代码可能会帮助你:
let i := 1
let n := 1
while i <= 100 do
while n <= 2000 do
print n
n := n + i
print ",", n, " "
done
print "\n"
i := i + 1
done