首页
IT
登录
6mi
u
盘
搜
搜 索
IT
杨辉三角
杨辉三角
xiaoxiao
2021-03-25
109
基础练习 杨辉三角形
问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入格式
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
//杨辉三角,公式求解,运用递归,
#include <iostream> using namespace std; //阶乘 int fun(int b){ if(b==0){return 1; } if(b==1){return 1; } if(b>1){ return b*fun(b-1); } } int f(int a,int b){ int sum=1; // if(a==b){return 1; //此处a=b不能作为跳出判断条件,此时return 1,主函数中1/m!,导致结果为0 // } if(a==0){return 1; } if(a==1){return 1;} for(int i=1;i<=b;i++){ sum=sum*a; a--; } return sum; } int main(int argc, char** argv) { int N,n,m; cin>>N; for(n=0;n<N;n++){ for(m=0;m<=n;m++){ cout<<f(n,m)/fun(m)<<" "; //cout<<f(n,m); } cout<<endl; }
return 0; }
转载请注明原文地址: https://ju.6miu.com/read-22954.html
技术
最新回复
(
0
)