楊輝三角 --- C語言程序

楊輝三角 ---  C語言程序ide


 

 

一、前言函數

  最近在逛博客的時候發現一個特別有意思的三角形  而後便編寫了下來。   它呢就是楊輝三角,也做爲個人首篇博客吧spa

        

二、旅程開始3d

  此處爲網上所找到的公式以及各類概述,然而對於來講 然並卵 我並看不懂 😂😂😂  相信各位應該也有和我同樣的人。。。。。code

          


 一、首先呢     咱們先很少說  先打一個簡單的模板上去  (倒三角)   blog

          

 

 

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5         for (int  i = 1; i <= 13; i++)
 6         {
 7 //            輸出倒三角空格
 8             for (int j=13; j>i; j--)
 9             {
10                 printf("--");
11             }
12             printf("\n");
13         }
14 
15     
16         return 0;
17 }
View Code

 


 二、咱們搭完一個模板後   咱們是否是須要分析一下公式規律了排序

        

 


 

三、瞭解第二步以後   那咱們就開始搭一個架子了哦    !!!!博客

               

#include <stdio.h>

int main()
{
        int upNumber = 1;                   //用來記錄上一個數
        for (int  i = 1; i <= 13; i++)
        {
            upNumber = 1;
//            輸出倒三角空格
            for (int j=13; j>i; j--)
            {
                printf("  ");
            }
            printf("1");                // 這是輸出每一行的第一個1
            for (int j = 1; j <= i - 2; j++)
            {
                //                    原始數據
               printf("  %i",upNumber = (i - j) * upNumber / j);
            }
            printf("   1\n");               // 每一行的最後一個 1
           
        }
    return 0;
}
View Code

 


 

 

四、咱們能夠從上圖看出只有第一行多了一個1對吧,然而其他的並無多、或者少  只是排版排的不怎麼樣  歪歪扭扭的待會兒我會一一告訴你們 😁 😁              那麼咱們先來解決1一個問題吧(咱們能夠判斷i是否等於1  若是等於就不讓它執行,若是不等於就執行是吧  等等方法形式  對吧!)io

 1 //            判斷是否第一次進來  若是是第一次進來就輸出1就能夠了
 2             if (i!=1) {
 3                 printf("1");                // 這是輸出每一行的第一個1
 4                 for (int j = 1; j <= i - 2; j++)
 5                 {
 6                     printf("  %i",upNumber = (i - j) * upNumber / j);
 7                 }
 8                 printf("   1\n");               // 每一行的最後一個 1
 9             }
10             else
11             {
12                 printf("1\n");               //第一行的1
13             }

 


 

五、代碼寫到這  形狀就差很少到這了    剩下的就是排版的問題了是吧 !!!event

        

 


六、排版嘛 就是空格的多少    百位數的就是一個空格  十位數的就是兩個空格  至因而一位數的話  那麼就是一個空格了哦  怎麼知道是百位或者十位還有個

位  那就取決於它位數的多少了    由於剛開始學  不知道什麼內部的方法或者什麼函數的  而後只能本身想了哦

 首先上一個例子吧  而後在展圖

  int count = 1;     //用來計數的多少   默認是1
  int sum = 100;     //給一個默認的百位數
  //給它一個循環  條件爲sum大於等於10那麼就繼續循環
  while(sum>=10)
  {
       sum/=10;   //除以10
       count++;   //只要進來一次就加一次  
   }
//若是執行完的話  那麼Count的值爲3

 

       

最後一個忘記寫了   空格爲3個      此處爲全部代碼

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5         int upNumber = 1;                   //用來記錄上一個數
 6         int count = 1;                      //排序時用來記錄數字的長度
 7         int sum =0;                         //排序時用來計算的變量
 8         for (int  i = 1; i <= 13; i++)
 9         {
10             upNumber = 1;
11 //            輸出倒三角空格
12             for (int j=13; j>i; j--)
13             {
14                 printf("  ");
15             }
16 //            判斷是否第一次進來  若是是第一次進來就輸出1就能夠了
17             if (i!=1) {
18                 printf("1");                // 這是輸出每一行的第一個1
19                 for (int j = 1; j <= i - 2; j++)
20                 {
21 //   -----------------用來排序-----------------
22                    sum = upNumber = (i - j) * upNumber / j;
23                     while(sum>=10)
24                     {
25                         sum/=10;
26                         count++;
27                     }
28                     if (count==3) {
29                         printf(" %i",upNumber);
30                         count=1;
31                     }else if (count==2)
32                     {
33                         printf("  %i",upNumber);
34                         count=1;
35                     }else
36                     {
37                         printf("   %i",upNumber);
38                         count=1;
39                     }
40 //   -----------------排序結束並輸出------------
41 //                    原始數據
42 //                    printf("  %i",upNumber = (i - j) * upNumber / j);
43                 }
44                 printf("   1\n");               // 每一行的最後一個 1
45             }
46             else
47             {
48                 printf("1\n");               //第一行的1
49             }
50         }
51     return 0;
52 }
View Code

 

 

以上純屬我的淺見,第一次寫博客不懂如何排版,因此如此之醜,見諒

相關文章
相關標籤/搜索