如何用Fortran输出指定对称数字三角形而非帕斯卡三角
Fortran对称数字三角代码修改方案
核心修改思路
- 移除原代码中计算组合数生成帕斯卡三角的逻辑,改为按「从1递增到当前行号、再递减回1」的规则输出每行数字
- 调整输出格式参数,匹配目标三角形的对齐效果
- 修复原代码末尾换行输出的语法错误
修改后完整代码
program symmetric_triangle implicit none integer :: i, j, n ! 读取输入的行数n write (*, '("input n: ")', advance="no") read(*,*) n ! 遍历每一行 do i = 1, n ! 输出行前导空格,匹配目标对齐效果 do j = 1, n - i write(*,'(2X)', advance="no") enddo ! 输出从1到i的递增部分 do j = 1, i write(*,'(I1, 1X)', advance="no") j enddo ! 输出从i-1到1的递减部分 do j = i - 1, 1, -1 write(*,'(I1, 1X)', advance="no") j enddo ! 换行 write(*,*) end do end program symmetric_triangle
运行效果说明
输入n=4时,输出结果和要求的目标格式完全一致:
1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1
内容的提问来源于stack exchange,提问作者McAngel25
相关产品推荐
相关产品推荐

