空心三角形
Problem Description
把一個字符三角形掏空,就能節(jié)省材料成本唇跨,減輕重量殊橙,但關(guān)鍵是為了追求另一種視覺效果。在設(shè)計的過程中俄精,需要給出各種花紋的材料和大小尺寸的三角形樣板询筏,通過電腦臨時做出來,以便看看效果竖慧。
Input
每行包含一個字符和一個整數(shù)n(0<n<41)嫌套,不同的字符表示不同的花紋,整數(shù)n表示等腰三角形的高圾旨。顯然其底邊長為2n-1踱讨。如果遇到@字符,則表示所做出來的樣板三角形已經(jīng)夠了砍的。
Output
每個樣板三角形之間應(yīng)空上一行痹筛,三角形的中間為空。顯然行末沒有多余的空格廓鞠。
Sample Input
X 2
A 7
@
Sample Output
X
XXX
A
A A
A A
A A
A A
A A
AAAAAAAAAAAAA
問題鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2091
問題簡述:一行輸入一個字符x和一個整數(shù)n帚稠,輸出高為n的x空心三角形
問題分析:循環(huán)語句逐個輸出相應(yīng)位置的相應(yīng)元素(字符x或者空格)
程序說明:定義一個sum變量,當(dāng)sum大于0時床佳,每個三角形間空上一行滋早;
在while循環(huán)中,循環(huán)輸入數(shù)據(jù)得到空心三角形砌们,直到輸入@終止循環(huán)杆麸。
在for (int i = 1;i <= n;i++)循環(huán)中,逐個輸出第i行的元素怨绣;
分為第一行角溃,最后一行,中間行三個部分篮撑;
中間行的兩個x字符為第n+i-1和第n-i+1個元素,其余為空格匆瓜。
#include<iostream>
using namespace std;
int main()
{
int sum=0;
while (1)
{
char x;int n;
cin >> x;
if (x != '@')
{
if (sum > 0)
cout << endl;
cin >> n;
for (int i = 1;i <= n;i++)
{
if (i == 1)
{
for (int L = 1;L< n;L++)
cout << ' ';
cout << x << endl;
}
else if (i == n)
{
for (int M = 1;M<= 2 * n - 1;M++)
cout << x;
cout << endl;
}
else
for (int k = 1;k < n+i;k++)
{
if (k == (n - i + 1))
cout << x;
else if( k == (n - 1 + i))
cout<<x<<endl;
else
cout << ' ';
}
}
sum++;
}
else if(x=='@')
break;
}
return 0赢笨;
}