假设我们有一个索引变量n从1到6的循环当我通过这个循环时,我想打印值

1
2
3
3
2
1

是否有一个优雅的数学运算(即避免if语句)可以实现这一点我知道如果我打印
1 + modulo(n-1,3)

它会打印出来
1
2
3
1
2
3

但我希望下半场能逆转。如果有帮助的话,循环将始终有偶数个迭代我是用Fortran 90写的。

最佳答案

以下几点怎么样:

do i=1,n
   print *, int(abs(i-n/2.0-0.5)+0.5)
end do

这将打印偶数n的预期结果,并为奇数n引入零。

10-07 19:57
查看更多