编程论坛
注册
登录
编程论坛
→
数据结构与算法
数据结构刚入门....来问一道题,要求用C调试通过
lrt201136019
发布于 2012-09-13 14:05, 538 次点击
设m,n均为自然数,m可表示为一些不超过n的自然数之和,试编写函数f(m,n)计算这种表示方法的数目。
例如:f(5,3)=5:3+2、3+1+1、2+2+1、2+1+1+1、1+1+1+1+1
3 回复
#2
寒风中的细雨
2012-09-14 15:05
程序代码:
#include
<iostream>
#include
<list>
using
namespace
std;
list<
int
> g_list;
void
show()
{
list<
int
>::const_iterator beg = g_list.begin(),
end = g_list.end();
while
(beg != end)
{
cout
<< *beg <<
'
'
;
++beg;
}
cout
<< endl;
}
void
f(
int
n)
{
if
(
1
== n)
{
return
;
}
int
i =
1
;
int
j = n/
2
;
while
(i <= j)
{
g_list.push_front(n-i);
g_list.push_front(i);
show();
g_list.pop_front();
f(i);
g_list.pop_front();
g_list.push_front(i);
f(n-i);
g_list.pop_front();
++i;
}
}
int
main()
{
f(
20
);
return
0
;
}
#3
zhu224039
2012-09-17 18:22
版主辛苦了 伸手党你也给代码 鄙视
#4
netlin
2012-09-17 23:38
又是一个数学问题!
给出代码,也好,大家都可以学习一下!
1