天极博客首页
登录
注册
帮助
搜索
独行客
http://blog.yesky.com/Blog/arkcq/
复制地址
控制面板
个人首页
发表文章
博客管理
博客收藏
日历
<
2007年6月
>
Su
Mo
Tu
We
Th
Fr
Sa
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
留言簿(7)
·
给我留言
·
查看私人留言
文章档案
·
2007年1月 (3)
·
2006年12月 (18)
·
2006年11月 (25)
·
2006年10月 (24)
·
2006年9月 (28)
·
2006年8月 (25)
·
2006年7月 (11)
·
2006年6月 (3)
最新评论
1·
方法3:利用每一行二项式系数的递推公式,此方法最快,并且空间复杂度O(1) 方法4:利用队列,上一行...
2·
一个字 扯
3·
感觉你也是个喜欢独处的人,认识一下,我是上海的,也是学net 2005技术的,msn:or...
4·
挨踢就是挨踢 看不懂啊 呵呵 小女子佩服啊
5·
有用的东西,谢谢
6·
一个个都不懂傻比一个 ~~!!!!
7·
c++逐步摆脱工具而趋于艺术,C++程序员将面临艺术家的困惑:生存和信仰哪个重要?
8·
你既然是黑道高手,能否告诉我解决病毒的方法?还有,我在Excel中现一个奇怪的问题,在一个单元格中输...
9·
一帮贱人,瞎jb搞,耍流氓找日本人呀!
10·
你怎么找到我的这篇文章的?
阅读排行榜
1. 程序怎么偷偷的启动(3180)
2. 注册表修改大全(1889)
3. “过35岁不能编程”这荒谬的说法(1457)
4. Visual Studio 2005下载(1447)
5. 转载:DirectShow 学习笔记(1)(1222)
6. 在网站内加入RSS功能 (1154)
7. rss订阅原理(824)
8. 在JCreator中使用SourceFormatX(798)
9. 深入分析MFC文档视图结构(794)
10. 转载:清华VS麻省:对比后,才知道我们的教育是多么失败 (781)
评论排行榜
1. 程序怎么偷偷的启动(11)
2. 马化腾给比尔·盖茨的回信(7)
3. 一个女CIO的诞生(后记) (6)
4. 嵌入式软件测试的十大秘诀(5)
5. “过35岁不能编程”这荒谬的说法(5)
6. 在JCreator中使用SourceFormatX(4)
7. C/C++是程序员必须掌握的语言吗? (3)
8. 转载:清华VS麻省:对比后,才知道我们的教育是多么失败 (3)
9. Visual Studio 2005下载(3)
10. 成渝恩怨战场移师互联网 双城之争可追溯至唐代(3)
杨辉三角形的两种不同思路的C实现方法
杨辉三角形(pascal triangle),winxp+dev_c++4环境下实现:
1:利用公式函数化实现:
#include
<
stdio.h
>
#define
M 10
int
factor(
int
m)
...
{
int
mult
=
1
,i;
for
(i
=
1
;i
<=
m;
++
i)
mult
*=
i;
return
mult;
}
//
计算阶乘;
int
pascal(
int
m,
int
n)
...
{
return
factor(m)
/
(factor(n)
*
factor(m
-
n));
}
//
利用公式计算每一个位置上元素的值;
int
main(
void
)
...
{
int
i,j;
for
(i
=
0
;i
<
M;
++
i)
...
{
for
(j
=
0
;j
<
i
+
1
;
++
j)
printf(
"
%d
"
,pascal(i,j));
putchar(
'
'
);
}
system(
"
pause
"
);
return
0
;
}
//
funtion way
2:利用二维数组实现:
#define
M 10
#include
<
stdio.h
>
int
main()
...
{
int
pascal[M][M];
int
i,j;
printf(
"
1
"
);
printf(
"
1 1
"
);
pascal[
0
][
0
]
=
1
;
pascal[
0
][
1
]
=
1
;
for
(i
=
1
;i
<
M
-
1
;
++
i)
//
注意将运算后得到的值存储以便下次运算使用;
...
{ pascal[i][
0
]
=
1
;
printf(
"
%d
"
,pascal[i][
0
]);
//
the 1st num 1
for
(j
=
1
;j
<
i
+
1
;
++
j)
...
{
pascal[i][j]
=
pascal[i
-
1
][j
-
1
]
+
pascal[i
-
1
][j];//计算中间里面的值;
printf(
"
%d
"
,pascal[i][j]);
}
pascal[i][j]
=
1
;
printf(
"
%d
"
,pascal[i][j]);
//
the last num 1;
}
system(
"
PAUSE
"
);
return
0
;
}
比较而言,下面一种方法更简洁,函数化实现需要很多次调用函数和多次循环计算。
作者:独行客 阅读()
评论()
编辑
发表于:2006-11-04 21:54
相关内容
在网站内加入RSS功能
rss订阅原理
J2ME简介
深入分析MFC文档视图结构
Eclipse 3.3 m4抢先预览
Visual Basic 2005学习入门之vs2005简介
Eclipse学习指南之Eclipse大事记
Eclipse学习指南之什么是Eclipse?
《越狱》的中国隐秘流行
2007年值得去思考的N大软件技术(1)
文章评论
#
re: 杨辉三角形的两种不同思路的C实现方法
方法3:利用每一行二项式系数的递推公式,此方法最快,并且空间复杂度O(1)
方法4:利用队列,上一行的元素出队的同时,计算出元素值入队
天极博友
| 2007-06-20 20:05
发表评论
标题
*
姓名
*
主页
内容
*
验证码:
*
版权声明:天极是本Blog托管服务提供商。如本文牵涉版权问题,天极不承担相关责任,请版权拥有者直接与文章作者联系解决。
Powered by:
Copyright © 独行客