本文主要是介绍C140 杨辉三角,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
C140 杨辉三角
- 题目
- 题解(94)
- 讨论(102)
- 排行
- 面经
new
简单 通过率:29.57% 时间限制:1秒 空间限制:256M
知识点C++工程师牛客
校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,而非本地IDE。
描述
KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。
输入描述:
第一行包含一个整数数n。 (1≤n≤30)
输出描述:
包含n行,为杨辉三角的前n行,每个数输出域宽为5。
思路:
每次放入一个1,因为杨辉三角最右侧一定都是1,然后先输出本行,再去构造对应位置的下一行,注意构造应当从右往左,因为每一个位置的构造需要用的对应下标和对应下标前一个,如果从左往右,对于i位置来说,其i-1位置已经是更新过的下一行杨辉三角的数了,就会出现错误。
#include <iostream>
#include<vector>
#include<stdio.h>
using namespace std;int main() {int n;cin>>n;vector<int>num;while(n--){num.push_back(1);for(int i=0;i<num.size();i++){printf("%5d",num[i]); }for(int i=num.size()-1;i>=1;i--){num[i]=num[i]+num[i-1]; }cout<<endl;}
}
// 64 位输出请用 printf("%lld")
这篇关于C140 杨辉三角的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!