打印规律图形

思路:将主对角线的1,2,3,4看成一行,5,6,7看成一行,8,9看成一行,10看成一行。按照这种方法,遍历一遍,正好是1~10。 

 然后在遍历的过程中将这些数存放在数组中。

上图所示:1的坐标为(1,1),因为i=1,j=1时为1。因此:

对于第一行的数(i=1):

1的坐标为(1,1),对应放在数组的a[1][1]

2的坐标为(1,2),对应放在数组的a[2][2]

3的坐标为(1,3),对应放在数组的a[3][3]

4的坐标为(1,4),对应放在数组的a[4][4]

对于第二行的数(i=2):

5的坐标为(2,1),对应放在数组的a[2][1]

6的坐标为(2,2),对应放在数组的a[3][2]

7的坐标为(2,3),对应放在数组的a[4][3]

对于第三行的数(i=3):

8的坐标为(3,1),对应放在数组的a[3][1]

9的坐标为(3,2),对应放在数组的a[4][2]

对于第四行的数(i=4):

10的坐标为(4,1),对应放在数组的a[4][1]

得出规律:坐标为(i,j),对应放在数组的a[i+j-1][j]

代码:

#include<iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	int a[100][100];
	int k=1;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n+1-i;j++){
			a[i+j-1][j]=k;
			k++;
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=i;j++){
			cout<<a[i][j]<<" ";
		}
		cout<<endl;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值