zoukankan      html  css  js  c++  java
  • 杨辉三角问题

    2019-04-29   22:34:40 

    问题描述:打印出如图所示三角形(打印十行)

    中间的数据等于其上一行左上,右上的数据和,第i层有i列需要求解i个数据,可以用二维数组存储杨辉三角形。规律:第一列都为1,主对角线都为1,从第三行起,中间位置元素的值等于其上一行对应位置元素及其前一个元素之和,值就是从当前推到到下一行的递推式,从此可求出杨辉三角行的任意一行。

    #include<stdio.h>
    void yanghui(){
        int n,i,j,a[20];
        printf(" 1
    ");
        a[1]=a[2]=1;
        printf(" %-4d %-4d
    ",a[1],a[2]);    //%-4d使输出空出4位来,-指左对齐
        for(i=3;i<=10;i++)
        {
            a[1]=a[i]=1;
            for(j=i-1;j>1;j--)
            {
            
            a[j]=a[j]+a[j-1];
            for(j=1;j<=i;j++)
            printf(" %-4d",a[j]);
           }
            printf("
    ");
          
        }
        
    } 
    int  main()
    {
    yanghui();
    }

    这个代码的运行只体现了思想,并没有按照正三角形的形式输出。

    改进版:

    #include <stdio.h>
    #define N 10 
    int main()
    { 
        int arr[N][N] = {0};
        int i=0;    
        for(i = 0; i<N; i++)
        {    
            int m = 0;      //定义m,使其输出空格,直角三角形变为正三角形 
            for(m = 0;m<N-i;m++)
            {
                printf(" ");
            }
            int j=0;
             for(j = 0;j<=i; j++)           //i=0,j=0,j<=i,所以执行内层for循环,j=0或者i=j,a[i][j]=1,即a[0][0]=1。j++后j为1,跳出内层循环。
              {                              i=1,j=0,a[1][0]=1;a[1]a[1]=1;跳出循环;
               if((0 == j)||(i == j))        i=2,j=0,a[2][0]=1;a[2][1]=a[1][1]+a[2][0]=1+1=2;a[2][2]=1;(i=j的情况)
                {            
                   arr[i][j] = 1;             
                }    
                else
                    {
                            
                        arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
                    }        
                printf("%4d",arr[i][j]);                   //规定好距离,若为1,2,3下层数据会混合在一起,不易区分。
            }    
            printf("
    ");
        }
        return 0;
    }

  • 相关阅读:
    重学Mybatis从入门到源码之一
    Ribbon的负载均衡策略及使用方法
    SpringCloud之Ribbon的使用及源码解析
    FeignClient spi 调用 短路异常 & 线程池配置
    springboot 中yml配置
    jrebel 启动失败的处理
    使用@Cacheable注解时,Redis连不上,直接调用方法内部的解决方案
    redis scan 命令指南
    正式学习单元测试
    Cannot assign requested address 和 SO_REUSEADDR 参数
  • 原文地址:https://www.cnblogs.com/laurarararararara/p/10793451.html
Copyright © 2011-2022 走看看