sunkehappy
随笔 - 19, 文章 - 0, 评论 - 2, 引用 - 0
数据加载中……
杭电1398
#include
<
iostream
>
using
namespace
std;
const
int
lmax
=
10000
;
//
c1是用来存放展开式的系数的,而c2则是用来计算时保存的,
//
他是用下标来控制每一项的位置,比如 c2[3] 就是 x^3 的系数。
//
用c1保存,然后在计算时用c2来保存变化的值。
int
c1[lmax
+
1
],c2[lmax
+
1
];
int
main()
{
int
n, i, j, k ;
//
计算的方法还是模拟手动运算,一个括号一个括号的计算,
//
从前往后
while
( cin
>>
n )
{
//
对于 1+x+x^2+x^3+
他们所有的系数都是 1
//
而 c2全部被初始化为0是因为以后要用到 c2[i] += x ;
for
( i
=
0
; i
<=
n; i
++
)
{
c1[i]
=
1
;
c2[i]
=
0
;
}
//
第一层循环是一共有 n 个小括号,而刚才已经算过一个了
//
所以是从2 到 n
for
(i
=
2
; i
<=
n; i
++
)
{
//
第二层循环是把每一个小括号里面的每一项,都要与前一个
//
小括号里面的每一项计算。
for
( j
=
0
; j
<=
n; j
++
)
//
第三层小括号是要控制每一项里面 X 增加的比例
//
这就是为什么要用 k+= i ;
for
( k
=
0
; k
+
j
<=
n; k
+=
i )
{
//
合并同类项,他们的系数要加在一起,所以是加法,呵呵。
//
刚开始看的时候就卡在这里了。
c2[j
+
k]
+=
c1[j];
}
//
刷新一下数据,继续下一次计算,就是下一个括号里面的每一项。
for
( j
=
0
; j
<=
n; j
++
)
{
c1[j]
=
c2[j] ;
c2[j]
=
0
;
}
}
cout
<<
c1[n]
<<
endl;
}
return
0
;
}
posted on 2009-04-29 10:47
祝你好运!
阅读(238)
评论(0)
编辑
收藏
引用
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
博问
Chat2DB
管理
Powered by:
C++博客
Copyright © 祝你好运!
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2009年4月
>
日
一
二
三
四
五
六
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
8
9
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(2)
给我留言
查看公开留言
查看私人留言
随笔档案
2009年8月 (1)
2009年7月 (1)
2009年6月 (1)
2009年5月 (15)
2009年4月 (1)
搜索
最新评论
1. re: 杭电1142 A Walk Through the Forest
评论内容较长,点击标题查看
--Veegin
2. re: hdu1102_Constructing Roads[未登录]
无语了,也没说几组数据啊。。。。。。。。。。。。
--小白
阅读排行榜
1. hdu1181变形课(730)
2. hdu2048错排的概率(510)
3. 杭电1142 A Walk Through the Forest(509)
4. hdu1233_还是畅通工程(451)
5. zoj1405_Tanning Salon(406)
评论排行榜
1. hdu1102_Constructing Roads(1)
2. 杭电1142 A Walk Through the Forest(1)
3. hdu1548_A strange lift(0)
4. hdu1548 A strange lift(0)
5. hdu1301_Jungle Roads(0)