<swustoj>?id=86 杨辉三角形

链接http://acm.swust.edu.cn/problem/0086/

杨辉三角http://baike.baidu.com/view/7804.htm

/*
第n行的m个数可表示为 C(n-1,m-1),
即为从n-1个不同元素中取m-1个元素的组合数
*/
#include <stdio.h>
int main()
{
    int combination(int m,int n);
    int n,i,j;
    while(~scanf("%d",&n))
    {
        if(n==0)
        {
            break;
        }
        else
        {
            for(i=0;i<n;i++)
            {
                for(j=0;j<=i;j++)
                {
                    if(j!=i)
                    {
                        printf("%d ",combination(i,j));
                    }
                    else
                    {
                        printf("%d\n",combination(i,j));
                    }
                }
            }
        }
    }
    return 0;
}
int combination(int m,int n)
{
    int factorial(int n);
    int ans,i;
    ans=1;
    for(i=m;i>m-n;i--)
    {
        ans=ans*i;
    }
    return ans=ans/factorial(n);
}
int factorial(int n)
{
    if(n==0||n==1)
    {
        return 1;
    }
    else
    {
        return n*factorial(n-1);
    }
}
#include <iostream>//队列
#include <queue>
using namespace std;
int main()
{
    int i,j,n;
    int temp;
    int item;
    while(cin>>n&&n!=0)
    {
        queue<int>q;
        for(i=1;i<=n;i++)
        {
            q.push(1);
            temp=0;
            for(j=1;j<=i;j++)
            {
                item=q.front();
                q.pop();
                q.push(item+temp);
                temp=item;
                if(j!=i)
                {
                    cout<<item<<" ";
                }
                else
                {
                    cout<<item<<endl;
                }
            }
        }
    }
    return 0;
}
时间: 2024-11-05 19:00:21

<swustoj>?id=86 杨辉三角形的相关文章

&lt;swustoj&gt;?id=203 Jack&#39;s problem

链接http://acm.swust.edu.cn/problem/203/ #include <stdio.h> int main() { double x1,x2,x3,y1,y2,y3; double s; while(~scanf("%lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3)) { s=(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2)*1

&lt;swustoj&gt;?id=1157 n个数的最小公倍数

链接http://acm.swust.edu.cn/problem/1157/ #include<stdio.h> int main() { int n,a[12],i,j; while(~scanf("%d",&n)) { for(i=0;i<n;i++) { scanf("%d",&a[i]); } for(i=a[0];;i++) { for(j=0;j<n;j++) { if(i%a[j]==0) { continue

&lt;swustoj&gt;?id=1158 比成绩

链接http://acm.swust.edu.cn/problem/1158/ #include <stdio.h> int main() { int n; int grade,averagegrade_1,sumgrade_1,averagegrade_2,sumgrade_2,count_1,count_2; int classnum; while(scanf("%d",&n)!=EOF) { count_1=count_2=0; sumgrade_1=sumg

&lt;swustoj&gt;?id=563 String

链接http://acm.swust.edu.cn/problem/563/ #include <stdio.h> #include <string.h> int main() { char str[105]; while(scanf("%s",str)!=EOF) { int leng = strlen(str),i; for(i = 0 ; i< leng ; i ++) { if(str[i]>='a'&&str[i]<=

&lt;swustoj&gt;?id=489 平方和与立方和

链接http://acm.swust.edu.cn/problem/489/ #include <stdio.h> int main() { int m,n; int temp,i,j; int sum_1,sum_2; int a[100005]; while(scanf("%d%d",&m,&n)!=EOF) { if(m>n) { temp=m; m=n; n=temp; } for(i=m;i<=n;i++) { a[i]=i; } su

&lt;swustoj&gt;?id=320 鸡兔同笼

链接http://acm.swust.edu.cn/problem/320/ #include <stdio.h> int main() { int n; scanf("%d",&n); while(n--) { int a; scanf("%d",&a); if(a%2!=0) { printf("0 0\n"); } else { printf("%d %d\n",a/4,a/2); } } r

&lt;swustoj&gt;?id=318 进制变换

链接http://acm.swust.edu.cn/problem/318/ #include <stdio.h> int arr[33]; int main() { int x; int i,j; while(scanf("%d",&x)!=EOF) { int y; y=x; i=j=0; if(x==0) { printf("0\n0\n"); } else { while(x!=0) { arr[i]=x%2; x=x/2; i++; }

&lt;swustoj&gt;?id=278 计分规则

链接http://acm.swust.edu.cn/problem/278/ #include <stdio.h> int main() { int i,n; scanf("%d",&n); int a[105]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } int sum=0,min=a[0],max=a[0]; for(i=0;i<n;i++) { sum=sum+a[i]; if(a[

&lt;swustoj&gt;?id=276 简单的计算器

链接http://acm.swust.edu.cn/problem/276/ #include <stdio.h> int main() { int a,b; char d; while(scanf("%d%c%d",&a,&d,&b)!=EOF) { switch(d) { case '+':printf("%d%c%d=%d\n",a,d,b,a+b);break; case '-':printf("%d%c%d=%