吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4093|回复: 8
收起左侧

[其他原创] 编程小练习(7)

 关闭 [复制链接]
zapline 发表于 2010-3-5 18:06
来输出一个杨辉三角形吧(两种形式)
设置一个变量控制行数
1                                                                         1
1  1                                                                   1  1
1   2   1                                                          1   2   1
1   3   3   1                                                   1   3   3   1
1   4   6    4   1                                           1   4   6   4  1


输入 一个正整数 n   (n<20)
输出杨辉三角 格式如上面左图
如果还想继续挑战,可以尝试输出上面右图

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

qyc0129 发表于 2010-3-5 18:16
貌似E语言很难实现。。
 楼主| zapline 发表于 2010-3-5 18:22
貌似E语言很难实现。。
qyc0129 发表于 2010-3-5 18:16



    跟语言无关  算法问题
vienna 发表于 2010-3-5 18:30
 楼主| zapline 发表于 2010-3-5 20:06
话说。。我忘了这个表的规律
vienna 发表于 2010-3-5 18:30



    边上都是1  下面的等于上面两个相加
376408384 发表于 2010-3-6 11:03
呵呵,我的题目啊...我刚学C语言。。很多都不会。。5楼的太厉害我看不懂
我也尝试用C语言,请各位多多指点~~!!
数字的规律我用2个自定义的函数搞定,主函数输出格式

左图:
 #include <stdio.h>
int num;
long i,j ;
long fun1(long x) ; 
long fun2(long m,long n) ;  
void main()                                                                  
{ printf("please enter a number:");  
   scanf("%d",&num);
for(i=0;i<num;i++)
      {
          for(j=0;j<i+1;j++) 
                                                                         
             printf("%ld%c",fun2(i,j),'  ');
          printf("\n") ; 
         }                                                                 
}                                                                                                                                              
long fun1(long x)                                                        
{long f ;                                                                                       
if(x==1||x==0)                                                      
f=1;                                                                         
else                                                                      
f=fun1(x-1)*x;                                                            
return(f);                                                                
}        

long fun2(long m,long n)       
{
  long c;
if(m<0||n<0)         
printf("Error!Please enter again!"); 
else  
c=fun1(m)/(fun1(n)*fun1(m-n));
return(c);   
} 



右图:(在左图基础上写的,貌似有问题,但我不知道哪里出问题)
#include <stdio.h>
int num;
long i,j,k ;
long fun1(long x) ; 
long fun2(long m,long n) ;  
void main()                                                                  
{ printf("please enter a number:");  
   scanf("%d",&num);
  for(i=0;i<num;i++)
  {
          for(j=0;j<i+1;j++) 
           {     for(k=0;k<num-1-i;k++)
                        printf(" ") ;                                                    
              printf("%ld ",fun2(i,j));
            }
      printf("\n") ; 
     }                                                                 
 }                                                                                                                                              
long fun1(long x)                                                        
 {long f ;                                                                                       
 if(x==1||x==0)                                                      
 f=1;                                                                         
 else                                                                      
 f=fun1(x-1)*x;                                                            
 return(f);                                                                
 }        


long fun2(long m,long n)       
{
  long c;
 if(m<0||n<0)         
 printf("Error!Please enter again!"); 
else  
c=fun1(m)/(fun1(n)*fun1(m-n));
 return(c);   

} 
liuxiangzy 发表于 2010-3-6 11:17
呵呵,虽然是小东西,但是还是要花点时间静下心来写的
376408384 发表于 2010-3-6 11:18
看了5楼的格式输出有感,改进右图输出,现在没问题了。。。呼呼
#include <stdio.h>
int num;
long i,j,k ;
long fun1(long x) ; 
long fun2(long m,long n) ;  
void main()                                                                  
{ printf("please enter a number:");  
   scanf("%d",&num);
  for(i=0;i<num;i++)
  {
           
                for(k=0;k<num-1-i;k++)
                        printf(" ") ;
                 for(j=0;j<i+1;j++)                                                   
                  printf("%ld ",fun2(i,j));
            
      printf("\n") ; 
     }                                                                 
 }                                                                                                                                              
long fun1(long x)                                                        
 {long f ;                                                                                       
 if(x==1||x==0)                                                      
 f=1;                                                                         
 else                                                                      
 f=fun1(x-1)*x;                                                            
 return(f);                                                                
 }        


long fun2(long m,long n)       
{
  long c;
 if(m<0||n<0)         
 printf("Error!Please enter again!"); 
else  
c=fun1(m)/(fun1(n)*fun1(m-n));
 return(c);   

}  
头像被屏蔽
safelzy 发表于 2010-12-31 17:24
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-17 00:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表