前言:
而今你们对“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语言写杨辉三角