根据参数n打印具有下面规律的图形

编写算法:根据参数n打印具有下面规律的图形,当n=4时,图形如下:

在这里插入图片描述

问题分析

思路一:

在这里插入图片描述

  1. 容易发现图形中数据排列的规律
  2. 从1—最大数,通过循环,直接输出 printf是按照从左至右、从上至下的顺序;
    若想直接输出,只有找出公式,循环计算得到
    序列:1-\n-5-2-\n-8-6-3-\n-10-9-7-4. (\n表换行)

思路二:

  1. 先用一个数组按此顺序存储数据,再正常输出;

  2. 为数组赋值,也要用循环 用斜行、列描述循环方向。 斜行i取值(1~n) 列j取值(1~n+1-i)

    斜[1,1]—a[1,1] 斜[1,2]—a[2,2] 斜[1,3]—a[3,3] 斜[1,4]—a[4,4]

    斜[2,1]—a[2,1] 斜[2,2]—a[3,2] 斜[2,3]—a[4,3]

    斜[3,1]—a[3,1] 斜[3,2]—a[4,2]

    斜[4,1]—a[4,1]

  3. 列号相同; 斜行a[i,j]->正常a[r,c] c=j,r=j+i-1 行号(显然行号与列号有关) i to n

  • [ ]第1斜行,对应行号1—n,行号与列号j同;
  • 第2斜行,对应行号2—n,行号比列号j大1;
  • 第3斜行,对应行号3—n,行号比列号j大2;

伪代码描述

main( )
{
    int i,j,a[100][100],n,k;
    input(n);
    k=1;
    for(i=1;i<=n;i=i+1)
        for( j=1;j<=n+1-i;j=j+1){
             a[i-1+j][j]=k;
             k=k+1;
        }
    for(i=1;i<=n;i=i+1){
        print( “换行符”); 
        for( j=1;j<=i;j=j+1)
             print(a[i][j]); 
    }
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值