codeforce Present from Lena 打印菱形

Vasya‘s birthday is approaching and Lena decided to sew a patterned handkerchief to him as a present. Lena chose digits from 0 to n as
the pattern. The digits will form a rhombus. The largest digit n should be located in the centre. The digits should decrease as they approach
the edges. For example, for n?=?5 the handkerchief pattern should look like that:

          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

Your task is to determine the way the handkerchief will look like by the given n.

Input

The first line contains the single integer n (2?≤?n?≤?9).

Output

Print a picture for the given n. You should strictly observe the number of spaces before the first digit on each line. Every two adjacent
digits in the same line should be separated by exactly one space. There should be no spaces after the last digit at the end of each line.

Sample test(s)

input

2

output

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

input

3

output

      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

细心题目,没更好的办法了,一个一个字符去打印,安排出菱形。

这里分上下菱形分别打印。

#include <iostream>
using namespace std;

void PresentfromLena()
{
	int k = 0;
	cin>>k;
	for (int i = 0; i <= k; i++)
	{
		int space = k - i;
		for (int j = 0; j < space; j++)
		{
			cout<<"  ";
		}
		for (int j = 0; j <= i; j++)
		{
			cout<<j;
			if (0 != i) cout<<‘ ‘;
		}
		for (int j = i - 1; j >= 0 ; j--)
		{
			cout<<j;
			if (j != 0) cout<<‘ ‘;
		}
		cout<<endl;//不要遗忘了换行符
	}
	for (int i = k - 1; i >= 0 ; i--)
	{
		int space = k - i;
		for (int j = 0; j < space; j++)
		{
			cout<<"  ";
		}
		for (int j = 0; j <= i; j++)
		{
			cout<<j;
			if (0 != i) cout<<‘ ‘;
		}
		for (int j = i - 1; j >= 0 ; j--)
		{
			cout<<j;
			if (j != 0) cout<<‘ ‘;
		}
		cout<<endl;
	}
}

codeforce Present from Lena 打印菱形,码迷,mamicode.com

时间: 2024-11-06 09:12:37

codeforce Present from Lena 打印菱形的相关文章

打印菱形

Console.WriteLine("请输入一个数"); int i = Convert.ToInt32(Console.ReadLine());//将菱形除了中间最长的一行,分成了上下两部分.中间的一行单独打印 //菱形上半部分 for (int hang = 1; hang < i; hang++) { for (int ge = hang; ge < i; ge++) { //先打空格 Console.Write(".");//依次减少 } for

JavaScript 打印菱形 输入打印行数 自动打印

  <!doctype html>   <html>   <head>   <meta charset="utf-8">   <title>打印菱形</title>   <script type="text/javascript">   var num = prompt("请输入打印的行数:");   for(var i=1;i<=num;i++)//决定输

C:打印菱形(自己的方法)

//-------------------*打印菱形*--------------------- int i,j,k; int n; printf("请输入一个奇数n:"); scanf("%d",&n); for (i=0; i<n/2; i++) { for (j=0; j<n/2-i; j++) { printf(" "); } for (k=0; k<=2*i; k++) { printf("*&quo

编程成长日记——打印菱形图案

#include<stdio.h> //打印菱形图案  int main() { int i=0,j=0,n=0; printf("请输入一个数字:\n"); scanf("%d",&n); printf("\n"); for(i=1;i<=n;i++) { for (j=1;j<=n-i;j++) { printf(" "); } for (j=1;j<=(2*i-1);j++) { p

如何利用while语句根据用户输入要求打印菱形图案

需求:如何利用while语句根据用户输入要求打印菱形图案 diamond.py代码如下: x=int(input('Please input number: ')) i=1 j=1 while i<=x: j=1 while j<=x-i : print(' ',end='') j+=1 while j<=x: print('* ',end='') j+=1 print() i+=1 i=1 while i<=x-1: j=1 while j<=i : print(' ',e

java打印菱形的简单方法

代码: package com.test.demos; public class Diamond { /** * 测试main方法 */ public static void main(String[] args) { printDiamond(10); // 10为对角线长度 } /** * 打印菱形实现方法 */ public static void printDiamond(int size) { size = (size / 2) * 2; // 菱形对角线两侧的宽度是相同的,所以对角线

使用C语言,利用for循环打印菱形(每个相邻菱形都要带空格)

之前看到网上的一些文章介绍如何打印菱形,但是和我当时题目要求的却不一样,网上的代码输出出来时每个相邻菱形并没有带空格. 我现在所介绍的是每个相邻菱形间都带有空格的代码. 习题及代码如下: 用*输出边长为n的实心菱形. * * * * * * * * * printf("请输入一个整数:"); int n = 0; scanf("%d",&n); //打印行数,注意必须是奇数行所以是2n-1 for (int i = 1; i <= 2*n - 1; i

打印菱形---命令行方式

打印菱形~突然想起一个小的程序,so,共享一下. 实现如下效果: 具体代码: 在main方法中 //用for循环打印菱形 //用i控制行数 //打印上三角形 for(int i=0;i<4;i++){ //打印空格 for(int j=0;j<3-i;j++){ printf(" "); } //打印* for(int k=0;k<2*i+1;k++){ printf("*"); } printf("\n"); } //打印下三

数组 冒泡排序 打印菱形 随机生成不同的数

判断一个数是否是质数  对这个数从1到这个数挨着取余 如果取余等于零则计数+1,所以当计数=2是  那么说明这个数只能被一和它本身整除 所以它是质数 打印菱形  每一行首先打印空格  然后打印符号 先打印上半部分 然后下半部分 这时候中间两行出现重复 那么需要去掉一行 数组 冒泡排序 首先定义数组 利用for循环把值输入到数组里边 后利用两个for循环 把数组里的数挨个比较 排序 如果a[i]<a[i+i] 然后进行交换 那么是降序输出 如果a[i]>a[i+1] 然后交换了  那么是升序排列