问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

有关C语言用递推方法的问题

发布网友 发布时间:2022-07-31 10:56

我来回答

4个回答

热心网友 时间:2024-05-08 19:34

递推算法是一种用若干步可重复运算来描述复杂问题的方法.递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。
【例】
植树节那天,有五位同学参加了植树活动,他们完成植树的棵树都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;... 如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?
分析:设第一位同学植树的棵树为a1,欲求a1,需从第五位同学植树的棵数a5入手,根据“多两棵”这个规律,按照一定顺序逐步进行推算:
(1) a5=10;
(2) a4=a5+2=12;
(3) a3=a4+2=14;
(4) a2=a3+2=16;
(5) a1=a2+2=18;
使用这种方法,
第一步先例举一些关系式,找到规律,或者说找到通项公式
第二步找到结束程序的条件值
找到后直接用
if(结束条件)
return 结束时的值
else 通项公式
return 最后的返回值
把这个直接填到被调函数里面就可以了

热心网友 时间:2024-05-08 19:35

你这个程序是用来求废品垃圾数列的吧?
把fun函数改一改,完整代码:
#include <stdio.h>
int fun(int n)
{
int s;
if(n==1||n==2)
s=1;
else
s=fun(n-1)+fun(n-2);
return s;
}
main()
{
int n;
scanf("%d",&n);
printf("%d\n",fun(n));
}

热心网友 时间:2024-05-08 19:35

for(i=1;i<n;i++)
s=fun(i)+fun(i+1)
你理解错了吧
递归是从n到1, 递推是从1到n. 应该用数组来弄吧

斐波那契数列只能这样做
#include "stdio.h"
int fun(int m){
if(m ==1 ){
return 1;
}
else if(m == 2){
return 1;
}
else{
return fun(m - 1)+fun(m - 2);
}
}
main(){
int i;
int n;
int result;
printf("要输入前几项的结果?\n");
scanf("%d",&n);
printf("结果是\n");
for(i=1;i<=n;i++){
result = fun(i);
printf("%d ",result);
}
printf("\n");
}

热心网友 时间:2024-05-08 19:36

你是不是看错题了?你不是说是递推吗?但是你的程序是用递归算法。
如果你用递归的话,如果n大一点估计只能用曙光超级计算机才能算出结果。
另外这一句有问题:
for(i=1;i<n;i++)
s=fun(i)+fun(i+1);
你的意思是:
for(i=1;i<n;i++)
s+=fun(i)+fun(i+1);

按我的理解这个问题应该是用递推算法的,但是不知道具体问题,所以不能给出代码,或者稍候联系?

下面是我猜题意的
#include <stdio.h>

#define MAX 10000 //n的最大取值范围

void fun(int n,int * FUN)
{
int i;
FUN[1]=1;
FUN[2]=1;
for (i=3; i<MAX; i++)
FUN[i]=FUN[i-1]+FUN[i-2];
}

int main()
{
int n, FUN[MAX];
fun(MAX, FUN);
scanf("%d", &n);
printf("%d\n", FUN[n]);
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
是选诺顿杀毒软件好还是NOD32好? 诺顿好还是NOD32好???请高手指点 诺顿安全软件和ESET NOD32安全软件相比,谁的防护.杀毒更强,功能更多... 诺顿和NOD32这两个杀毒软件哪个比较好? 什么是土地二次抵押 "口似含莲,乾姜之手"是什么意思? 乾姜的意思是什么 都说Pinnacle Food公司各方面做的好,有对这家了解的吗 空调蒸发箱多久清洗一次 空调蒸发箱需要清洗吗 苹果xr流量设置 请问彩掌叶子变成这样是什么原因呢?谢谢 用C语言的函数递推方法写10! 彩掌适合放卧室吗 c语言函数递推 彩掌需要修剪吗?如何修剪? c语言递推求解释??? 彩掌的叶子、芽发黄然后干枯怎么回事? C语言 这个递推的代码要咋写? 请用C语言编一个程序,采用递推法,计算出1*2*3+3*4*5+...+99*100*101... 淘宝旺旺账号注册器V3.0,这个软件是哪里买啊? 淘宝旺旺账号注册器,这个软件是哪里买啊,或着谁批点旺旺白号给我啊! 请问淘宝旺旺小号注册机从哪买到?骗子走开。 跪求淘宝旺旺账号注册机 白骨大圣白棺女尸身份 白骨大圣为什么总感觉少看了 白骨大圣最新章节,小说全文免费阅读,求txt下载 白骨大圣山神是什么 苹果11删除软件出现分屏 个人官网买的苹果12可以在闲卖吗 苹果12显示账号里面购买记录怎么删除? 编写一个C语言程序,用递推法求前20项和 c语言编写程序已知数列{xn}由递推公式x1=10,xn+1=xn^2+4/2xn,(n=1... 常用比喻句 C语言编程: 用递推法产生杨辉三角前15行的数据 怎样才能让毛孔变小 怎么样让毛孔变小 让毛孔变小的方法 八哥是保护动物吗 八哥是不是保护动物 U盘,储存卡之类的移动储存介质被删除的文件还能恢复吗? 在勾勾斗地主里怎么下载板砖? 工商银行卡到中国银行查询余额收费多少? 中国银行借记卡,跨省在自动机器上查余额需要收手续费吗 工行到中国银行自动取款机上查钱收费吗? 莫名其妙收到qq辅助资料验证 QQ申诉填的好友辅助的资料会不会泄漏啊,会不会让盗Q的人看到? 请以“我的一片土地”为话题写一篇600字作文 铃木天语sx4尚悦全车喷漆多少钱 雨燕铃木全车漆翻新多少钱? 铃木启悦车门钣金喷漆得多钱? 铃木雨燕车漆全喷多少钱 4s店 请问铃木翔羊全车喷漆多少钱?