| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2736 人关注过本帖, 1 人收藏
标题:杨辉三角的编程,求最佳解答
只看楼主 加入收藏
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:40 
程序代码:
#include <stdio.h>
#define MAXN 100
int a[MAXN] = {1,1,1,0} ;
int main()
{
    int i , j ;
    printf("1\n" ) ;
    printf("1 1\n") ;
    for( i = 2 ; i < 10 ; ++i )
    {
        a[ i * ( i - 1 ) / 2 ] = 1 ;
        printf("%d " , a[ i * ( i - 1 ) / 2 ] ) ;
        for( j = 1 ; j <= i ; ++j )
        {
            a[ i * ( i + 1 ) / 2 + j ] = a[ ( i - 1 ) * ( i ) / 2 + j ]  +  a[ ( i - 1 ) * ( i ) / 2 + j - 1 ] ;
            printf("%d " , a[ i * ( i + 1 ) / 2 + j ] ) ;
        }
        printf("\n") ;
    }
    return 0 ;
}

#include <stdio.h>
#include <math.h>
#define MAXN 110
int a[MAXN] = {0} ;
int main()
{
    int i , j ;
    int m = (int)sqrt(MAXN) ;
    for( i = 1 ; i <= m ; ++i )
    {
        a[i * m] = 1 ;
        printf("%d ", a[i * m] ) ;
        for( j = 1 ; j < i ; ++j )
        {
            a[i * m + j] = a[( i - 1 ) * m + j - 1] + a[( i - 1 ) * m + j] ;
            printf("%d ", a[i * m + j] ) ;
        }
        printf("\n") ;
    }
    return 0 ;
}

#include <stdio.h>
int Print( int m , int n )
{
    if( m == 0 || n == 0 )
        return 1 ;
    int a = 1 , b = 1 ;
    int i ;
    for( i = 1 ; i <= n ; ++i )
    {
        b *= i ;
    }
    for( i = m - n + 1 ; i <= m ; ++i )
    {
        a *= i ;
    }
    return a / b ;
}
int main()
{
    int i , j ;
    for( i = 0 ; i < 10 ; ++i )
    {
        for( j = 0 ; j <= i ; ++j )
        {
            printf("%d ", Print( i , j ) ) ;
        }
        printf("\n") ;
    }
    return 0 ;
} 

#include <stdio.h>
int main()
{
    int a[2][10] = { 0 } ;
    a[0][0] = a[1][0] = a[0][1] = 1 ;
    int i , j ;
    printf("1\n") ;
    printf("1 1\n") ;
    for( i = 2 ; i < 10 ; ++i )
    {
        a[1][0] = a[0][0] = 1 ;
        printf("%d ", a[1][0] ) ;
        for( j = 1 ; j <= i ; ++j )
        {
            a[1][j] = a[0][j] + a[0][j - 1] ;
            printf("%d " , a[1][j] ) ;
        }
        printf("\n") ;
        for( j = 1 ; j <= i ; ++j )
        {
            a[0][j] = a[1][j] ;
        }
    }
    return 0 ;
}

#include <stdio.h>
int main()
{
    int a[2][6] = { 0 } ;
    a[0][0] = a[1][0] = a[0][1] = 1 ;
    int i , j ;
    printf("1\n") ;
    printf("1 1\n") ;
    for( i = 2 ; i < 10 ; ++i )
    {
        a[1][0] = a[0][0] = 1 ;
        printf("%d ", a[1][0] ) ;
        for( j = 1 ; j <= i / 2 ; ++j )
        {
            a[1][j] = a[0][j] + a[0][j - 1] ;
            printf("%d " , a[1][j] ) ;
        }
        if( i % 2 == 0)
        {
            --j ;
        } 
        else
        {
            a[1][j] = a[1][j-1] ;
        }
        while( j > 0 )
            printf("%d " , a[1][--j] ) ;
        printf("\n") ;
        for( j = 1 ; j <= i / 2 + 1 ; ++j )
        {
            a[0][j] = a[1][j] ;
        }
    }
    return 0 ;
}




[ 本帖最后由 『点点滴滴』 于 2011-2-28 10:17 编辑 ]
2011-02-28 09:20
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:0 
回复 11楼 『点点滴滴』
点点滴滴,辛苦你了!
再让帖子飘一段时间,广泛征求高手思路!

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-28 13:56
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
这个题我觉得过分追求节约空间的话,就是不用数组。
杨辉三角第 i 行,第 j 个元素不就是 C(j, i)。生算也是一种方法,时间换空间唄。要不然就二维,一维挺无趣的。
2011-02-28 19:02
limingzhen90
Rank: 2
等 级:论坛游民
帖 子:53
专家分:72
注 册:2010-12-31
收藏
得分:0 
版主知道就解释下嘛,别卖关子了,

入门了吗?
2011-03-01 12:54
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
你们资质太差, 技术敏感性过低

我就是真命天子,顺我者生,逆我者死!
2011-03-01 18:07
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
以下是引用BlueGuy在2011-2-27 12:51:08的发言:

这个题确实很有价值,也是本人比较自豪的一个知识点,是本人减轻了某些人编码的痛苦。
ByteArray2D readByteArray2D(ubyte* input)
{
    ByteArray2D byteArray2D;
    int i, j;

    byteArray2D = bgMalloc(sizeof(BGByteArray2D));

    skip = 0;

    byteArray2D->firLength  = readShort(input, skip);
    byteArray2D->secLength1V = bgMalloc(sizeof(short) * byteArray2D->firLength);
    byteArray2D->data = bgMalloc(sizeof(bgbyte*) * byteArray2D->firLength);     

    skip += 2;

    for (i = 0; i < byteArray2D->firLength; i++)
    {
        byteArray2D->secLength1V = readShort(input, skip);
        byteArray2D->data = bgMalloc(sizeof(bgbyte) * byteArray2D->secLength1V);
        skip += 2;

        for (j = 0; j < byteArray2D->secLength1V; j++)
        {
            byteArray2D->data[j] = readByte(input, skip);
            skip += 1;   
        }
    }
   
    return byteArray2D;
}

上下文不全,你想表达什么??蛋疼不???还说别人技术敏感性差..
有这么麻烦吗??公式给出来,直接一个滚动数组,空间复杂度就是O(1).

樱花大战,  有爱.
2011-03-01 22:37
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:5 
i=1,j,f[99]={0,1};main(n){for(scanf("%d",&n);i++<=n;puts(""))for(j=i;--j;printf("%d ",f[j]+=f[j-1]));}

千万别模仿这种风格,仅仅是为了娱乐。本来想用预处理做一个,后来考虑到诸多困难没写成,留给有能力的神人吧。

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-03-01 22:38
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
公式: c[i][j] = c[i-1][j]+c[i-1][j-1]
滚动数组: c[i%2][j%2] = c[(i-1)%2][j%2]+c[(i-1)%2][(j-1)%2]

[ 本帖最后由 中学者 于 2011-3-1 22:43 编辑 ]
收到的鲜花

樱花大战,  有爱.
2011-03-01 22:38
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
以下是引用中学者在2011-3-1 22:37:19的发言:


滚动数组: c[i%2][j%2] = c[(i-1)%2][j%2]+c[(i-1)%2][(j-1)%2].


暂时收回我刚才的评分。
我感觉你滚动数组这样这样做不太对。

[ 本帖最后由 卧龙孔明 于 2011-3-1 22:48 编辑 ]

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2011-03-01 22:41
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
以下是引用卧龙孔明在2011-3-1 22:41:59的发言:



不太对吧。

不知道呢~~我只是看到那个技术敏感性太差的发言有点激动..没过多考虑.孔明大牛给个浅显易懂的答案.

樱花大战,  有爱.
2011-03-01 22:48
快速回复:杨辉三角的编程,求最佳解答
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019087 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved