P5725 【深基4.习8】求三角形 【洛谷】

题目描述

模仿例题,打印出不同方向的正方形,然后打印三角形矩阵。中间有个空行。

输入格式

输入矩阵的规模,不超过 9。

输出格式

输出矩形和正方形

 

输入输出样例

输入 #1 
4
输出 #1 
01020304
05060708
09101112
13141516

      01
    0203
  040506
07080910


【题目分析】
若想打印此数据,可知,我们并不能直接输出类似1,2,3这样的值,因为题目要求在1-9的数字中需要输出前置位
0,所以我们可以创建一个N行N*2列的二维数组。
要想解决前置位为0的问题,因为题目要求是规模为9所以最大数字为81
我们可以对数字i(81>=i>=1)的数据进行除运算和取余运算(mod 10)
例如 数字5 取余为5,除运算为0
数字12 取余为2,除运算为1
这样便可以简单的计算出每个位置的数字
【代码实现】
#include<iostream>
using namespace std;
int  a[20][20];
int b[20][20];
int s=1,k=1,m=1;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n*2;j=j+2){
			if(s>=1){
				a[i][j]=s/10;
				a[i][j+1]=s%10;
				s++;
			}
			
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n*2;j++){
			cout<<a[i][j];
		}
		cout<<endl;
	}
	cout<<endl;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=n*2;){
			if(j>(n*2-2*i)){
			b[i][j]=k/10;
			cout<<b[i][j];
			b[i][j+1]=k%10;
			cout<<b[i][j+1];
				k++;
				j=j+2;
			}
			else{
			cout<<" ";
			j=j+1;
		}
			}
			cout<<endl;
		}
	return 0;
}

  


【运行结果】
本代码在Devc++下通过,若有错误欢迎指正!!!
posted on 2020-10-28 23:10  Studyxy  阅读(525)  评论(0)    收藏  举报