hdu---2091---空心三角形
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2091
Mean:
给你一个等腰三角形的高n,打印出这个三角形
analyse:
1.当n=1时,直接打印一个字符就行
2.当n>=2时:
1>第一行在第n个位置打印一个字符
2>第i=2行到i=n-1行在每一行只有在n-i+1 && n+i-1处有一个字符
3>第n行打印2*n-1字符就行了
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include<vector> #include<queue> #include<algorithm> using namespace std; typedef long long LL; const int maxn=10005; const int INF=0x3f3f3f3f; char ch; int n; void solve() { if(n==1) printf("%c\n", ch); else { for(int i=1; i<n; i++) printf(" "); printf("%c\n", ch); for(int i=2; i<n; i++) { for(int j=1; j<=n+i-1; j++) { if(j==n-i+1 || j==n+i-1) printf("%c", ch); else printf(" "); } printf("\n"); } for(int i=1; i<=2*n-1; i++) printf("%c", ch); printf("\n"); } } int main() { int f=0; while(scanf("%c", &ch), ch!='@') { scanf("%d", &n); getchar(); if(f) printf("\n"); solve(); f=1; } return 0; }