字符棱形

字符棱形

时间: 1ms        内存:64M

描述:

根据读入的字符和边长,勾画字符棱形。

输入:

输入数据含有不超过50组的数据,每组数据包括一个可见字符c和一个整数n(1≤n≤30)。

输出:

输出以c为填充字符,边长为n的棱形,勾画每个棱形时都应另起一行。

示例输入:

A 5 B 3

示例输出:

    A
   AAA
  AAAAA
 AAAAAAA
AAAAAAAAA
 AAAAAAA
  AAAAA
   AAA
    A
  B
 BBB
BBBBB
 BBB
  B

提示:

参考答案(内存最优[752]):

#include<stdio.h>
int main()
{
	int i,j,k,m,n;
	char c;
	while(scanf("%c %d",&c,&n)!=EOF)
	{
	    getchar();
	        for(i=0;i<n;i++)
		{
			for(j=0;j<n-i-1;j++)
				printf(" ");
			for(k=0;k<=2*i;k++)
				printf("%c",c);
			printf("\n");
		}
		for(i=1;i<=n-1;i++)
		{
			for(j=0;j<i;j++)
				printf(" ");
			for(m=k-2*i;m>0;m--)
				printf("%c",c);
			printf("\n");
		}
	}
	return 0;
}

参考答案(时间最优[0]):

#include <iostream>
using namespace std;
int main()
{
	char c;
	int n,i,j;
	while(cin>>c>>n)
	{for(i=1;i<=n;i++)
	{for(j=1;j<=n-i;j++)
	cout<<" ";
	for(j=1;j<=2*i-1;j++)
	cout<<c;cout<<'\n';}
	for(i=1;i<=n-1;i++)
	{for(j=1;j<=i;j++)
	cout<<" ";
	for(j=1;j<=2*(n-i)-1;j++)
	cout<<c;cout<<'\n';
	}
	}
	return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注