考研机试题:打印数字菱形

发布于:2025-02-10 ⋅ 阅读:(80) ⋅ 点赞:(0)

描述

打印一个由数字 0∼n 构成的菱形。

其中 n 位于正中心,数字靠近边缘时逐个递减,直至为 0。

例如,当 n=5时,图形如下所示:

          0
        0 1 0
      0 1 2 1 0
    0 1 2 3 2 1 0
  0 1 2 3 4 3 2 1 0
0 1 2 3 4 5 4 3 2 1 0
  0 1 2 3 4 3 2 1 0
    0 1 2 3 2 1 0
      0 1 2 1 0
        0 1 0
          0

现在,给定 n,请你打印相应菱形。

输入描述:

一个整数 n。

2≤n≤9

输出描述:

输出相应菱形。

输入

 2

输出

    0
  0 1 0
0 1 2 1 0
  0 1 0
    0

输入

3

输出

      0
    0 1 0
  0 1 2 1 0
0 1 2 3 2 1 0
  0 1 2 1 0
    0 1 0
      0

代码1

#include<iostream>
using namespace std;
void rhombus(int n){
	int t=0;
	//打印上半菱形
	for(int j=n;j>=0;j--){
		//打印空格
		for(int i=0;i<j;i++){
			printf("  ");
		}
		//打印前半数字
		for(int i=0;i<=t;i++){
			printf("%d ",i);
		}
		//打印后半数字
		for(int i=t-1;i>=0;i--){
			printf("%d ",i);
		}
		t++;
		printf("\n");
	}
//打印下半菱形
	for(int j=1;j<=n;j++){
		//打印空格
		for(int i=0;i<j;i++){
			printf("  ");
		}
		//打印前半数字
		for(int i=0;i<=t-j-1;i++){
			printf("%d ",i);
		}
		//打印后半数字
		for(int i=t-2-j;i>=0;i--){
			printf("%d ",i);
		}
		printf("\n");
	}
}

int main(){
	int n;
	cin>>n;
	rhombus(n);
	
}

代码2

#include<iostream>
using namespace std;
int n;
//菱形每一行的输出
void rhombusro(int k){
	for(int i=0;i<n-k;i++){
		printf("  ");
	}
	for(int i=0;i<=k;i++){
		printf("%d ",i);
	}
	for(int i=k-1;i>=0;i--){
		printf("%d ",i);
	}
	printf("\n");
}

int main(){
	cin>>n;
	for(int i=0;i<=n;i++){
		rhombusro(i);
	}
	for(int i=n-1;i>=0;i--){
		rhombusro(i);
	}
}


网站公告

今日签到

点亮在社区的每一天
去签到