c语言递归求n的阶乘 一个递归相关的问题

理论上讲,仅仅是理论!任何递归算法都有其非递归算法,但实际运用中,能够写出相应的非递归算法并加以实现的递归算法是很少的,所以递归仍是解决复杂问题的常用方法之一。
您的举报已经提交成功,我们将尽快处理,谢谢!
一个函数直接或间接调用自己就叫做递归
对一个问题的求解可以转换为一个规模较小的原来问题的求解时。要用到递归算法,最简单的例子:阶乘问题
n!=n*(n-1)...
(1) 不太可能吧
b)改进递归外的部分
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'最大子数组问题,非递归实现,c语言实现。 - 推酷
最大子数组问题,非递归实现,c语言实现。
博客中,描述了“最大子数组”问题,和一个递归,分治思路的实现。这里给出一个非递归的实现。 由于子数组必须是连续的,因此问题可以从头到尾扫描数组一次,找出最终解。
思路是,始终保留6个变量,分别是 result_start, result_end, result_sum, curr_start, curr_end, curr_sum. 游标从数组的第0号元素开始,每经过一个元素,就把它的值加到curr_sum中。 每当发现curr_sum的值大于result_sum时,就把curr的3个变量的值赋值到result的3个变量中。 但是其中有一点要注意的是,任何时候,只要curr_sum的值小于0,就要把curr_start游标跳转到下一个元素,并把curr_sum清零,重新开始计。 因为curr_sum为0时,就代表之前的所有元素加和小于0.那么后续任何元素与这个小于0的数相加,肯定都不是最大子数组,应该把边和为0的元素去掉。
实现代码如下:
#include &stdio.h&
#include &stdlib.h&
#define LENGTH(s) (sizeof(s) / sizeof(int))
int main(void) {
int array[] = {13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7};
//int array[] = {-1, -2, -3};
int result_start = 0, result_end = 0, result_sum = 0;
int curr_start = 0;
int curr_end = 0;
int curr_sum = 0;
int length = LENGTH(array);
for (i = 0; i & i++) {
curr_end =
curr_sum = curr_sum + array[i];
if (curr_sum & 0) {
curr_start = i + 1;
curr_sum = 0;
if (curr_sum & result_sum) {
result_sum = curr_
result_start = curr_
result_end = curr_
printf(&max subarry : %d - %d, sum : %d \n&, result_start, result_end, result_sum);
return EXIT_SUCCESS;
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致递归求年龄
&2&&& 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第
&3&&&    3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后
&4&&&    问第一个人,他说是10岁。请问第五个人多大?
&6&&& 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道
&7&&&       第四人的岁数,依次类推,推到第一人(10岁),再往回推。
&9 #include&stdio.h&
11 int age(int n)
15&&&& if(n==1)
16&&&&&&&& return 10;
18&&&& else
20&&&&&&&& c = age(n-1)+2;
21&&&&&&&&
22&&&& }&&&
25 int main()
29&&&& printf(&his age is :%d\n&,age(5));
31&&&& //for(i=1;i&6;i++)
32&&&& //printf(&the %d man is :%d\n&,i,age(i));
34&&&& return 0;
摘自&&zhengmian&
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'&&&&C语言使用递归来实现N皇后问题的算法设计
C语言使用递归来实现N皇后问题的算法设计
一个自己编写的N皇后算法,程序较简单,用递归实现。
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
开发技术下载排行

我要回帖

更多关于 c语言递归调用 的文章

 

随机推荐