《算法竞赛入门经典》习题练习之习题2-4 倒三角形

输入正整数n<=20,输出一个n层的倒三角形,例如n=5时输出如下:

#########

 #######

  #####

   ###

     #

想法: 一看到这类题就知道需要找规律。所以可发现规律:从下向上看成正立的三角形的话发现每层的#标记分别为13579等等,即从下向上看第i(假设i1开始计数)#标记有2*i-1个。所以当看成倒立的三角形时第i层的#标记一共有2*(n-i+1)个。

C语言代码如下:

#include<stdio.h>
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<i;j++)
			printf(" ");
			
		int count=2*(n-i+1)-1;	//每一层需输出 # 的次数 
		while(count>0)
		{	
			printf("#");
			count--; 
		}
		printf("\n");
	}
 } 


Java代码如下:

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {  
		Scanner cin = new Scanner(System.in);  
        int n = cin.nextInt();
    	for(int i=1;i<=n;i++)
    	{
    		for(int j=1;j<i;j++)
    			System.out.print(" ");
    			
    		int count=2*(n-i+1)-1;	//每一层需输出 # 的次数 
    		while(count>0)
    		{	
    			System.out.print("#");
    			count--; 
    		}
    		System.out.println();;
    	}
    }    
}

猜你喜欢

转载自blog.csdn.net/hjl_heart/article/details/79311826