zoukankan      html  css  js  c++  java
  • 《N诺机试指南》(七)排版类问题

    1.菱形问题:

     

    解析: 主要通过打印空格和星形来打印整个图形,将整体分为=上三角形+下三角形

    首先观察上三角形可以发现:第一行2个空格1个星、第二行1个空格3个星、第三行0个空格5个星

                空格数:2-->1-->0 、星数:1-->3-->5

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){ 
    	1.打印菱形
    	int n;
    	scanf("%d", &n);//输入打印菱形对角边
    	//打印上三角形
    	for(int i=1; i<=n; i++){
    		//打印空格:个数变化2-->1-->0 
    	    for(int j=1; j<=n-i; j++){
    	    	printf(" ");
    		}
    		//打印*:个数变化1-->3-->5  (2i-1) 
    		for(int j=n-i+1; j<n+i; j++){
    			printf("*");
    		}
    		printf("
    ");
    	}
    	//打印下三角形=上三角反过来输出
    	for(int i=n-1; i>=1; i--){
    	    for(int j=1; j<=n-i; j++){
    	    	printf(" ");
    		}
    		for(int j=n-i+1; j<n+i; j++){
    			printf("*");
    		}
    		printf("
    ");
    	}
            return 0
    }    

    在打印上三角时候:

    只要满足2i-1即可

    2.杨辉三角:

    解析:杨辉三角主要是某一行某一列的那个数 = 上一行那一列前面一个的数 + 上一行那一列的数 

    代码: 

    	2.打印杨辉三角
    	int a[21][21] = {0};
    	int n;
    	while( scanf("%d", &n)!=EOF ){
    		if( n==0 )
    			return -1;
    		a[1][1] = 1;
    		for(int i=2; i<=n; i++){//从第二行开始 
    			for(int j=1; j<=i; j++){
    				//这是重点! 
    				a[i][j] = a[i-1][j] + a[i-1][j-1];
    			}
    		}
    		for(int i=1; i<=n; i++){
    			for(int j=1; j<=i; j++){
    				printf("%d ", a[i][j]);
    			}
    			printf("
    ");
    		}
    	} 

    练习:

  • 相关阅读:
    LeetCode Valid Sudoku
    接下来复习的重点
    leetcode:LRU Cache
    [leetcode] Insertion Sort List
    [QT Creator]LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 。
    [leetcode]Sort List
    李开复的七封信
    (归并排序)
    应聘面试自我介绍范文
    判断一颗二叉树是否是平衡二叉树
  • 原文地址:https://www.cnblogs.com/Whgy/p/12337666.html
Copyright © 2011-2022 走看看