| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 627 人关注过本帖
标题:太久没写代码了,随便弄了一个三角形~
只看楼主 加入收藏
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:49
帖 子:4936
专家分:13916
注 册:2016-10-22
结帖率:100%
  问题点数:0  回复次数:8   
太久没写代码了,随便弄了一个三角形~
自己弄了个简单的三角形代码,记录一下~

程序代码:

#include<stdio.h>
#include<assert.h>

#define N 12

void fun( unsigned n );

int main ( void )
{
    fun(N);
   
    return 0;
}

void fun( unsigned n )
{
    unsigned i;
    unsigned j;
   
    unsigned k=0;
   
    if (n==0)
       return ;

    assert(n<13);  //这个关于格式问题影响输出,有兴趣的可以自己改改~
   
    printf("%-4u\n",1);
    for (i=1;i!=n+1;++i)
    {
        printf("%-4u",1);
        
        for (j=k=1;j!=i;++j)
            printf("%-4u",k=k*(i+1-j)/j);
        
        printf("%-4u\n",1);
    }
        
}


[此贴子已经被作者于2018-3-6 19:48编辑过]

2018-03-06 18:45
Jeyyion_han
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:207
专家分:301
注 册:2018-1-22
  得分:0 
膜拜
2018-03-06 19:10
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
  得分:0 
前辈就是厉害

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-06 20:05
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:49
帖 子:4936
专家分:13916
注 册:2016-10-22
  得分:0 
以下是引用lanke711在2018-3-6 20:05:26的发言:

前辈就是厉害

哇,你注册时间还比我早还叫我前辈~
我上网搜了很多初学的都用了数组,然后发现杨辉三角形和排列组合有关就自己推了一下,当然看到有别的同道也用这种方法弄了出来我就安心了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-03-06 20:29
ehszt
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:34
帖 子:1633
专家分:2989
注 册:2015-12-2
  得分:0 
凑个热闹
#include<stdio.h>
#define N 8

void fun( unsigned n );

int main ( void )
 {
     fun(N);
     
     return 0;
 }
 
void space(int n){
    while(n--)
    printf(" ");
}

void fun( unsigned n )
 {
     unsigned i;
     unsigned j;
     int a[2][20];
     if(n==0)
        return ;
     for(i=1;i<=n;i++)
     {
         space((n-i)*3);
         for(j=1;j<=i;j++)
         {
             if(j==1||j==i)
             printf("%3d",a[1][j]=1);
             a[0][j]=a[1][j];
             if(j<i&&j!=1)
             printf("%3d",a[1][j]=a[0][j-1]+a[0][j]);
             space(3);
         }
         printf("\n");
     }
     
         
 }
收到的鲜花
  • 九转星河 于 2018-03-06 22:48 送鲜花  1朵   附言:到底还是弄出来了,好~
2018-03-06 20:38
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
  得分:0 
回复 4楼 九转星河
虽然我注册时间比较早,因为工作问题,真正在的时间很少,可以用手指头计算。。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-06 21:36
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
  得分:0 
程序代码:
#include<stdio.h>
#define MAX 13
int PascalTriangle(int Row, int Col)
{
    if (Col == 0 || Row == Col)
    {
        return 1;
    }
    else
    {
        return PascalTriangle(Row - 1, Col - 1) + PascalTriangle(Row - 1, Col);
    }
}

int main()
{
    for (int _Row = 0; _Row < MAX; _Row++)
    {
        printf("%s","                           "+_Row*2);
        for (int _Col = 0; _Col <= _Row; _Col++)
        {
            printf("%4d", PascalTriangle(_Row, _Col));
        }
        printf("\n");
    }
}
2018-03-07 09:43
九转星河
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:长长久久
等 级:版主
威 望:49
帖 子:4936
专家分:13916
注 册:2016-10-22
  得分:0 
回复 7楼 童生
递归,我昨天弄好后看看别的写法包括了这种,感觉好像是一颗树这样的,当然可以学习一下~

[此贴子已经被作者于2018-3-7 13:07编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-03-07 13:03
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:12
专家分:18
注 册:2018-3-10
  得分:0 
回复 楼主 九转星河
萌新表示看不懂
2018-03-10 16:15







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

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