题目
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例:
3
输出样例
数据规模 1<= n <=50
大概就是这个样子,具体看这→原题
解题思路
这道题其实就是在原有的对称沙漏的基础上右边要输出空格对齐。我原本想着是全部放在一个大循环里面实现,可是到中间后面几行时思考的太复杂。所以我选择上面到中间分为一部分一起输出,下面的分为另一部分进行输出。
先讲上面到中间的这一部分。我先考虑的是最中间只输出一个 “ * ” 的这一部分,因为它的右边是没有空格的,左边的空格规律是n-1个,最后再输出一个 " * "。
再讲上面的部分,发现左边空格数量依次加一,中间星的数量依次减一,最后当i>0的时候右边要输出i个空格。
下面的部分其实就是上面的部分倒过来输出,具体可以看代码,这里比较简单不再赘述了。
总体代码
#include<stdio.h>
int main(){
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++)