数据结构c语言程序杨辉三角,杨辉三角 --- C语言程序

杨辉三角 ---  C语言程序

1、前言

最近在逛博客的时候发现一个特别有意思的三角形  然后便编写了下来。   它呢就是杨辉三角,也作为我的首篇博客吧

31b9b4fa78e2a97760aa76273a0e81b2.png

2、旅程开始

此处为网上所找到的公式以及各种概述,然而对于来说 然并卵 我并看不懂😂😂😂相信各位应该也有和我一样的人。。。。。

6b358470c8866561ef7491bac83c3b17.png

1、首先呢     我们先不多说  先打一个简单的模板上去  (倒三角)

387d212f1e6543717fce7616ab87d475.png

314a0c4215e0a644bc465f860179545e.gif

42dc719f92eb36669033620654eb1993.gif

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、我们搭完一个模板后   我们是不是需要分析一下公式规律了

8ee328962c33520f37dae8c3e8c6d7ea.png

3、了解第二步之后   那我们就开始搭一个架子了哦    !!!!

3617cceb32df7f08c0e869f09061cd9b.png

314a0c4215e0a644bc465f860179545e.gif

42dc719f92eb36669033620654eb1993.gif

#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、代码写到这  形状就差不多到这了    剩下的就是排版的问题了是吧 !!!

1742e2173194a7c3ebf8d73dadbda914.png

6、排版嘛 就是空格的多少    百位数的就是一个空格  十位数的就是两个空格  至于是一位数的话  那么就是一个空格了哦  怎么知道是百位或者十位还有个

位  那就取决于它位数的多少了   因为刚开始学  不知道什么内部的方法或者什么函数的  然后只能自己想了哦

首先上一个例子吧  然后在展图

int count = 1; //用来计数的多少 默认是1

int sum = 100; //给一个默认的百位数//给它一个循环 条件为sum大于等于10那么就继续循环

while(sum>=10)

{

sum/=10; //除以10

count++; //只要进来一次就加一次

}//如果执行完的话 那么Count的值为3

da6df24aa14a5a01d66df4324c9d48bb.png

最后一个忘记写了   空格为3个      此处为所有代码

314a0c4215e0a644bc465f860179545e.gif

42dc719f92eb36669033620654eb1993.gif

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

以上纯属个人浅见,第一次写博客不懂如何排版,所以如此之丑,见谅

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值