| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3006 人关注过本帖
标题:怎么打印这样的杨辉三角函数
只看楼主 加入收藏
天衣boy
Rank: 1
来 自:中国河南
等 级:新手上路
帖 子:99
专家分:0
注 册:2016-10-20
结帖率:69.23%
收藏
已结贴  问题点数:8 回复次数:10 
怎么打印这样的杨辉三角函数
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 杨辉三角 
2016-12-08 23:12
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:1 
一时纠结如何控制循环变量,我还是上网搜搜算了。查过相关信息大都是用数组保存数据。
网上的代码都很简洁,我看到后都不想再打代码了,有点想直接从网上copy一份下来的冲动。

不过,n<=30是否有点大呢?比划了一下,一行是装不了如此长度的数据的,而且当n很大的时候,保留空格会成一个问题,影响排版,更何况题目似乎每个数之间只留一个空格,这样超过三位数的是否会影响排版呢,可以打印n=10的时候试试。

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-08 23:40
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
C30(15)  > 2^64

这题考的是大数


[fly]存在即是合理[/fly]
2016-12-09 09:21
天衣boy
Rank: 1
来 自:中国河南
等 级:新手上路
帖 子:99
专家分:0
注 册:2016-10-20
收藏
得分:0 
回复 2楼 九转星河
能把代码写一下吗  谢谢

刚学习小半年   ,   努力成为专家
2016-12-09 09:40
天衣boy
Rank: 1
来 自:中国河南
等 级:新手上路
帖 子:99
专家分:0
注 册:2016-10-20
收藏
得分:0 
回复 3楼 azzbcc
能把代码写一下吗  谢谢

刚学习小半年   ,   努力成为专家
2016-12-09 09:41
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
弄错了,2^30内的数据,int就可以了


[fly]存在即是合理[/fly]
2016-12-09 10:46
天衣boy
Rank: 1
来 自:中国河南
等 级:新手上路
帖 子:99
专家分:0
注 册:2016-10-20
收藏
得分:0 
回复 6楼 azzbcc
#include "stdio.h"
main()
{
  
    int i,j,n;
    scanf("%d",&n);
    int a[n][n];
    for(i=0;i<n;i++)
       for(j=0;j<i+1;j++)
          {
              if(j==0||i==j)
              a[i][j]=1;
              else
              a[i][j]=a[i-1][j-1]+a[i-1][j];
              printf("%d",a[i][j]);
              if(i>j)
              printf(" ");
              if(i==j)
              printf("\n");
          }
}
我写的这个是一般的杨辉三角   我不会按照题目要求的格式来写   你能帮忙写下么

刚学习小半年   ,   努力成为专家
2016-12-09 13:29
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:2 
#include<stdio.h>
int main()
{
    int**show,layers;char choice[2];short i;short idx;short blank;
    do
    {
         do
         {
             printf("请输入非负指数:");
             scanf("%d",&layers);
         }while(layers<0);
         show=(int**)malloc(sizeof(int*)*(layers+1));
         for(i=0;i<=layers;i++)
         {
             for(blank=0;blank<=layers-i;blank++) printf("  ");//输出空格
             show[i]=(int*)malloc(sizeof(int)*(i+1));
             if(i==0)
             {
                 show[i][0]=1;printf("%d",show[i][0]);
             }
             else
             {
                 if(i==1)
                 {
                     show[1][0]=1;show[1][1]=1;printf("%d   %d",show[i][0],show[1][1]);
                 }
                 else
                 {
                     show[i][0]=1;printf("%d   ",show[i][0]);
                     for(idx=1;idx<=i;idx++)
                     {
                         if(idx<i)
                             show[i][idx]=show[i-1][idx-1]+show[i-1][idx];
                         else
                             show[i][idx]=1;
                         printf("%d   ",show[i][idx]);
                     }
                 }
             }
             printf("\n");
         }
         for(i=0;i<=layers;i++)
             free(show[i]);
         free(show);
         printf("要继续打印杨辉三角形吗?(y/n)");
         scanf("%s",&choice);
    }while(choice[0]=='y'||choice[0]=='Y');
    return 0;
}
2016-12-09 14:54
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:1 
应该可用两个一维数组解决,在你的代码基础上稍作修改可实现题意格式(未做全部测试)。
程序代码:
#include "stdio.h" 
void main() 
{ 
    
    int i,j,k,n;
    scanf("%d",&n);
    int a[30][30]; 
    for(i=0;i<n;i++)
    {
        for(k=0;k<(n+4)/2-i;k++)printf("    ");
        for(j=0;j<i+1;j++) 
        {
            if(j==0||i==j) 
                a[i][j]=1; 
            else
                a[i][j]=a[i-1][j-1]+a[i-1][j]; 
            printf("%4d",a[i][j]);
            printf("    ");
            if(i==j) 
                printf("\n"); 
        } 
    }
}
2016-12-09 15:24
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:1 
回复 7楼 天衣boy
#include <stdio.h>

int main(int argc, char *argv[])
{
    int n = 30, sa[30];

    for (int i = 0; i < n; ++i)
    {
        sa[i] = 1;
        for (int j = i - 1; j > 0; --j)
        {
            sa[j] += sa[j - 1];
        }

        printf("%*d", n - i, 1);
        for (int j = 1; j <= i; ++j)
        {
            printf(" %d", sa[j]);
        }
        printf("\n");
    }

    return 0;
}


[fly]存在即是合理[/fly]
2016-12-09 15:41
快速回复:怎么打印这样的杨辉三角函数
数据加载中...
 
   



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

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