龙空技术网

来打印个杨辉三角玩玩

非知名码农 547

前言:

而今你们对“c语言写杨辉三角”大概比较着重,各位老铁们都想要了解一些“c语言写杨辉三角”的相关资讯。那么小编同时在网摘上收集了一些对于“c语言写杨辉三角””的相关知识,希望同学们能喜欢,我们快快来了解一下吧!

一、前几节课一直都是复制粘贴的方式在 console 中运行程序,在程序改来改去的时候,复制过来复制过去挺麻烦的,今天玩这个改动会比较多,所以咱们换种方式,把 javaScript 代码写到 html 中,直接在浏览器打开,然后改完程序,刷新就行了。

1、打开 vscode ,File -> New File.

2、将文档类型设置成 html

3、打个感叹号,并按 Tab 键

会自动生成一个简单的html模板

4、然后在 <body></body> 之前加上 以下内容,并保存到桌面,命名为“杨辉三角.html”:

5、找到桌面上的“杨辉三角”,用鼠标右键->打开方式-> Google Chrome

会弹出 chrome 浏览器,并在页面上显示一个1就对了

然后,我们切回到 vscode 把 document.write(1) 改成 document.write(2)并 control + s 保存;

再倒回来浏览器刷新一下看看会发现,页面上已经变成2了。

二、先了解一下,什么是杨辉三角

1、第一行是一个1;

2、第二行开始,每行的行首和行尾都是1

3、从第三行开始看出规律来了,中间的2就是第二行的两个1的和

4、从第四行来看,第2个数字“3”是第三行的第1和第2个数的和,第3个数字“3”,是第三行的第2和第3个数字的和。

规律找到了,我们开始来写程序吧。

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>Document</title></head><body>    <script>        /*        杨辉三角就是下面这么一个东西:            1           1 1          1 2 1         1 3 3 1        1 4 6 4 1        ======================        1、第一行是一个1;        2、第二行开始,每行的行首和行尾都是1        3、从第三行开始看出规律来了,中间的2就是第二行的两个1的和        4、从第四行来看,第2个数字“3”是第三行的第1和第2个数的和,第3个数字“3”,是第三行的第2和第3个数字的和。        规律找到了,我们开始来写程序吧。            */                function ShowYangHuiTriangle(n) {       //n 表示行数            //因为前一行结果会影响后一行,所以打印后一行的时候,要知道前一行是啥,而前一行的空格数,又和后一行相关            //所以我们还是先把数据生成了再来打印吧            var data = [];      //java script 不能直接定义二维数组,只能先定义一个一维数组,再往二维数组里插数组            //第1行:data[0] = [1]            //第2行:data[1] = [1,1]            //第3行:data[2] = [1,2,1]            //第4行: data[3] = [1,3,3,1]            //第5行: data[4] = [1,4,6,4,1]            //第一行虽然就只有一个数字,但它也应该是个数组            data.push([1]);            //从第二行开始,到第 n 行,这种带得有(从 xxx 到 xxx 的,一般就是 for 循环了)            //这里要注意,数组的下标是从 0 开始的            //假如: data = [1,2,3,4,5] 数组             //那么  data[0] = 1; data[1] = 2; data[2] = 3; data[3] = 4; data[4] = 5;             //所以从第 2 行到 第 n 行,应该是  1 <= row < n            for (var r=1;r<n; r++) {    //r 表示当前是第几行                var row = [];           //生成新行                row.push(1);            //数组的 push 方法是往数组中按顺序添加元素,这里表示每行的行首都是1                 //第一行是一个元素,第二行是两个元素,第三行是三个元素,所以第 r 行                //就是 r 个元素,但需要注意的是,这里的 r 是行标                //第一行的时候 r = 0, 第二行的时候,r = 1, 第 n 行的时候 r = n - 1;                //下标为r的行,它是第 r+1 行,它的元素范围是从  0 < 元素个数 < r + 1;  //每行的全部元素                //还要去掉行首和行尾所以需要计算的范围就是      1 < 元素个数 < r       //去掉了行首和行尾的全部元素                for (var c=1;c<r;c++) {                     row.push(data[r-1][c-1] + data[r-1][c]);                            //data[r] 是当前行所以 data[r-1] 是前一行                    //当前行的第2个元素 = 前一行的第1个元素 + 前一行的第2个元素                    //举例:第3行的第2个数字, data[2][1]  = 2 ,它等于 第2行的第1个数字和第2个数字和   = data[1][0] + data[1][1]                }                row.push(1);            //这里表示每行的行尾也是1                data.push(row);         //把新行加入到 data 中            }            //打印所有行            for (var r in data) {               //r 为当前行数                           //每一行的空格数 = n - r 当前行数                for(var c=0;c<n-r;c++) document.write(" ");                document.write(data[r].join(" "));  //每一行的所有数字用空格格开                document.write("\n");               //打完一行要换行            }        }        document.write("<pre>");                //保持原样打印开始        ShowYangHuiTriangle(5);                 // 我们希望想打几行就打几行        document.write("</pre>");               //保持原样打印结束    </script></body></html>

当行数很多的时候,格式会乱,比如说打印10行

标签: #c语言写杨辉三角