方法一、每一行都是组合数,逐行输出
#include <iostream>
using namespace std;
//习题8.1杨辉三角形
long long jiecheng(long long x){
if(x==0||x==1)return 1;
return jiecheng(x-1)*x;
}
long long C(long long x,long long i){
return jiecheng(x)/(jiecheng(x-i)*jiecheng(i));
}
void line(int x){//若这一行的底为x,则这一行有x+1个数字
int output;
for(int i=0;i<x+1;i++){
output=C(x,i);
printf("%5d",output);
}
printf("\n");
}
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++)line(i);
return 0;
}
☆方法二、用递归的思想
//习题8.1杨辉三角形
int main(){
int n;
scanf("%d",&n);
int output[30][30];
for(int i=0;i<n;i++){
for(int j=0;j<=i;j++){
if(j==0||i==j)output[i][j]=1;
else output[i][j]=output[i-1][j-1]+output[i-1][j];
printf("%5d",output[i][j]);
}
printf("\n");
}
return 0;
}