杨辉三角

    xiaoxiao2021-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)