数据结构c语言程序杨辉三角,杨辉三角 --- C语言程序
楊輝三角 --- ?C語言程序
1、前言
最近在逛博客的時候發現一個特別有意思的三角形 ?然后便編寫了下來。 ? 它呢就是楊輝三角,也作為我的首篇博客吧
2、旅程開始
此處為網上所找到的公式以及各種概述,然而對于來說 然并卵 我并看不懂😂😂😂相信各位應該也有和我一樣的人。。。。。
1、首先呢 ? ? 我們先不多說 ?先打一個簡單的模板上去 ?(倒三角)
1 #include
2
3 intmain()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
2、我們搭完一個模板后 ? 我們是不是需要分析一下公式規律了
3、了解第二步之后 ? 那我們就開始搭一個架子了哦 ? ?!!!!
#include
intmain()
{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
4、我們可以從上圖看出只有第一行多了一個1對吧,然而其余的并沒有多、或者少 ?只是排版排的不怎么樣 ?歪歪扭扭的待會兒我會一一告訴大家 😁?😁 ? ? ? ? ? ?那么我們先來解決1一個問題吧(我們可以判斷i是否等于1 ?如果等于就不讓它執行,如果不等于就執行是吧 ?等等方法形式 ?對吧!)
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 }
5、代碼寫到這 ?形狀就差不多到這了 ? ?剩下的就是排版的問題了是吧 !!!
6、排版嘛 就是空格的多少 ? ?百位數的就是一個空格 ?十位數的就是兩個空格 ?至于是一位數的話 ?那么就是一個空格了哦 ?怎么知道是百位或者十位還有個
位 ?那就取決于它位數的多少了 ??因為剛開始學 ?不知道什么內部的方法或者什么函數的 ?然后只能自己想了哦
首先上一個例子吧 ?然后在展圖
int count = 1; //用來計數的多少 默認是1
int sum = 100; //給一個默認的百位數//給它一個循環 條件為sum大于等于10那么就繼續循環
while(sum>=10)
{
sum/=10; //除以10
count++; //只要進來一次就加一次
}//如果執行完的話 那么Count的值為3
最后一個忘記寫了 ? 空格為3個 ? ? ?此處為所有代碼
1 #include
2
3 intmain()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
以上純屬個人淺見,第一次寫博客不懂如何排版,所以如此之丑,見諒
總結
以上是生活随笔為你收集整理的数据结构c语言程序杨辉三角,杨辉三角 --- C语言程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决sockscap64测试代理可以,实
- 下一篇: 类的组成