注册 登录
编程论坛 C++教室

杨辉三角

daniel2008 发布于 2009-10-02 10:32, 883 次点击
请教  杨辉三角该怎么编???


谢谢
6 回复
#2
flyingcloude2009-10-02 10:35
两重循环搞定
#3
daniel20082009-10-02 15:21
回复 2楼 flyingcloude
how???
#4
哎呀麦兜2009-10-02 19:43
#include <iostream>  
#include <iomanip>  
using namespace std;  
void main()  
{  
    int a[100][100],i,j,k,n;  
    do{                                           //控制打印行数  
    cout<<"请输入要打印的行数(<=13):\n";  
    cin>>n;  
    if(n>13)cout<<"error!行数超出范围!\n";  
    }while(n>13);  
    for(i=0;i<n;i++)                              //给每个数赋值  
    for(j=0;j<=i;j++)  
    {  
        a[j][j]=1;  
        a[i][0]=1;  
        if(i>1&&j>0&&i>j)  
        a[i][j]=a[i-1][j-1]+a[i-1][j];  
    }  
    for(i=0;i<n;i++)  
    {  
        for(k=0;k<=35-3*i;k++)                    //打印空格  
            cout<<' ';  
        for(j=0;j<=i;j++)                         //输出杨辉三角  
    cout<<setw(6)<<a[i][j];  
    cout<<endl;  
    }  
}



这是csdn 上的,仅供参考。
#5
无影无踪2009-10-02 20:28
不错啊
#6
h20092009-10-02 20:43
我是个还没有入门,但我狠想学,那个高手能告诉我好的入门方法吗?
#7
narcissushtl2009-10-04 17:58
4L的代码到第13行就溢出了,我写了一个能算到第17行。。。
以下是求二项式展开式各项系数的代码:
long coefficient_function(long n, long i){
    int j;
    long x=1,y=1;
    if((i+1)>(n-i)){
        for(j=i+1;j<=n;j++){
            x=x*j;
        }
        for(j=1;j<=n-i;j++){
            y=y*j;
        }
        return x/y;
    }
    else{
        for(j=n-i+1;j<=n;j++){
            x=x*j;
        }
        for(j=1;j<=i;j++){
            y=y*j;
        }
        return x/y;
    }
}
//function n!/((n-i)!i!)
1