| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2736 人关注过本帖, 1 人收藏
标题:杨辉三角的编程,求最佳解答
只看楼主 加入收藏
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
结帖率:100%
收藏(1)
已结贴  问题点数:50 回复次数:27 
杨辉三角的编程,求最佳解答
杨辉三角的编程,要求用二维数组(但空间尽量少),只用一个一维数组,和不用数组的解答。
给50分,主要是希望大家共同参与,相互学习。
搜索更多相关主题的帖子: 杨辉三角 空间 
2011-02-26 12:04
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
我以前做过一个你说的最简单实现的杨辉三角,用二维数组实现,不过这个是老谭书上的习题,只要求输出10行10列
程序代码:
#include <stdio.h>

int main()
{
    int (*p)[10],*pt,a[10][10];
    p=a;
    for(;p<a+10;p++)
    {
        pt = *p;
        for(;pt<*p+10;pt++)
            *pt = 0;
    }
    //矩阵初始化,全为0
    printf("The initial matrix is:\n");
    p=a;
    for(;p<a+10;p++)
    {
        pt = *p;
        for(;pt<*p+10;pt++)
            printf("%d ",*pt);
        putchar('\n');
    }
    //矩阵次初始化,第一列全为1
    p=a;
    for(;p<a+10;p++)
        **p=1;
    printf("The after matrix is:\n");
    p=a;
    for(;p<a+10;p++)
    {
        pt = *p;
        for(;pt<*p+10;pt++)
            printf("%d ",*pt);
        putchar('\n');
    }
    //矩阵杨辉三角化
    int i,j;
    for(i=1;i<10;i++)
    {
        for(j=1;j<=i;j++)
            a[i][j]=a[i-1][j-1]+a[i-1][j];
    }
    printf("The YangHui matrix is:\n");
    p=a;
    for(i=1;p<a+10;p++,i++)
    {
        pt = *p;
        for(;pt<*p+i;pt++)
            printf("%d ",*pt);
        putchar('\n');
    }
}

 

[ 本帖最后由 baobaoisme 于 2011-2-26 12:08 编辑 ]
2011-02-26 12:06
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:0 
发觉楼主也是西安的,我也是
2011-02-26 12:10
chan92
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:17
专家分:4
注 册:2011-2-23
收藏
得分:0 
#include "stdafx.h"
#include <stdio.h>

int main(int argc, char* argv[])
{   
    int a[10][10],i,j,k;
    for(i=0;i<10;i++)
        for(j=0;j<10;j++)
            
        
    for(i=0;i<10;i++)
    {
        for(k=0;k<10-i;k++)
            printf("  ");
        for(j=0;j<=i;j++)
        {   
            if(j==0)
                a[i][j]=1;
            if(i==j)
                a[i][j]=1;
            if(i>j&&j!=0)
                a[i][j]=a[i-1][j]+a[i-1][j-1];
            printf("%-4d",a[i][j]);
        }
        
        printf("\n");
    }
    return 0;
}
用二维数组的
2011-02-26 12:16
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:0 
#include <stdio.h>
#include <conio.h>
#define N 11
void main()
{
    int a[N][N],i,j,m;
    for(i=1;i<N;i++)
    {
        a[i][i]=1;
        a[i][1]=1;
    }
       for(i=3;i<N;i++)
       for(j=2;j<=i-1;j++)
        a[i][j]=a[i-1][j-1]+a[i-1][j];
         for(i=1;i<N;i++)
    {
        for(m=20;m>=2*i;m--)
        printf(" ");
        for(j=1;j<=i;j++)
        printf("%4d",a[i][j]);
        printf("\n");
    }

       for(i=N-2;i>=1;i--)
    {
        for(m=2*i;m<=20;m++)
        printf(" ");
        for(j=i;j>=1;j--)
        printf("%4d",a[i][j]);
        printf("\n");
    }
  getch();
}
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-02-27 00:09
犬虫门心
Rank: 8Rank: 8
来 自:西安
等 级:蝙蝠侠
帖 子:209
专家分:753
注 册:2011-1-25
收藏
得分:0 
回复 2楼 baobaoisme
没有满足空间尽量小的要求啊。

当一名对得起学生学费的老师,一直是我的目标!我会更努力的!
2011-02-27 11:55
蕙雨星
Rank: 2
等 级:论坛游民
帖 子:25
专家分:24
注 册:2011-2-23
收藏
得分:0 
#include "stdafx.h"
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i,j;
    system("color  e");
    int yang[10][10];
    printf("\n");
    for(i = 0; i < 10; i++)
    {
        yang[i][0] = 1;
        yang[i][i] = 1;
    }
        for(i = 2; i < 10; i++)
            for(j = 1; j < i; j++)
            yang[i][j] = yang[i - 1][j - 1] + yang[i - 1][j];
        for(i = 0; i < 10; i++)
        {
            for(j = 0; j <= i; j++)
                printf("%5d",yang[i][j]);
                printf("\n");
        }
            
        return(0);   
}
2011-02-27 12:31
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
这个题确实很有价值,也是本人比较自豪的一个知识点,是本人减轻了某些人编码的痛苦。
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[i] = readShort(input, skip);
        byteArray2D->data[i] = bgMalloc(sizeof(bgbyte) * byteArray2D->secLength1V[i]);
        skip += 2;

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

我就是真命天子,顺我者生,逆我者死!
2011-02-27 12:51
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
楼主要是看的懂,可以说是一位合格的教师...

我就是真命天子,顺我者生,逆我者死!
2011-02-27 12:53
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
杨辉三角哇
好多年没接触过了。。。
2011-02-27 12:57
快速回复:杨辉三角的编程,求最佳解答
数据加载中...
 
   



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

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