标签:输出 num int 打印 C++ 空格 初学 杨辉三角
写在前面
第一次详细的写点东西,如有不对,请多多指教。
01
C++的
杨辉三角之
第一个版本–就是最基础的,输入行数,输出打印的图形。话不多说,代码如下:
#include <iostream>
using namespace std;
int main()
{
int num; //代表着要打印的行数
cin >> num; //输入行数
int a[num][num]; //定义一个二维数组,但是打印的时候只打印一部分,不是打印全部
int i, j; //i代表行,j代表列
for (i = 0; i < num; i++)
{
for (j = 0; j <= i; j++)
{
if (j == 0 || i == j)
a[i][j] = 1;
//如果是第一列或者是每一行中行数与列数相等的那一列
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
//该行列的数字为上上一行的左下方和右下方的数字之和
}
cout << a[i][j] << " "; //在每一个输出之间加空格
}
cout << endl; //在每一行之后输出一个换行符,
//所以是在第一个for循环外,第二个for循环内输出换行符
}
return 0;
}
输出的结果:(如图)
02
C++的
杨辉三角之
第二个版本,将杨辉三角的输出变化一下。
先贴出结果:
(不知道为什么图片里面有字啊…意思就是这么个意思)
像这样的图形,其实就是在每一行输出之前先输出空格即可。
代码如下:
#include <iostream>
using namespace std;
int main()
{
int num; //代表着要打印的行数
cin >> num; //输入行数
int a[num][num]; //定义一个二维数组,但是打印的时候只打印一部分,不是打印全部
int i, j; //i代表行,j代表列
for (i = 0; i < num; i++)
{
if (i != num) //在每一行输出之前判断是否是num,若不是num,则根据数学规律,输出空格
{
for (int k = num - i - 1; k > 0; k--)
cout << " ";
}
for (j = 0; j <= i; j++)
{
if (j == 0 || i == j)
a[i][j] = 1;
//如果是第一列或者是每一行中行数与列数相等的那一列
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
//该行列的数字为上上一行的左下方和右下方的数字之和
}
cout << a[i][j] << " "; //在每一个输出之间加空格
}
cout << endl; //在每一行之后输出一个换行符,
//所以是在第一个for循环外,第二个for循环内输出换行符
}
return 0;
}
第二次改进的时候,我以5行举例,列出来一个数学公式,如图:
(图中左边用圆圈划起来的是空格的个数)
那么根据该图便可知一个求出空格的个数的公式,即第i行要有num - i - 1个空格(i是从0开始)。
03
我暂时就想到这么多,一个很简单的分享。
本文结束!
谢谢大葛!欢迎大家留言分享自己的看法!
标签:输出,num,int,打印,C++,空格,初学,杨辉三角 来源: https://blog.csdn.net/weixin_44115149/article/details/104131684
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。