本文目錄一覽:
C語言用函數遞推法求1+2+3+…+n
– -###
遞歸函數有兩個基本要素:一個是描述問題規模逐步縮小的遞歸演算法,另一個是描述基本情況的遞歸終止條件
int Sum(int n)
{
if(n==1)
return 1;
else
return Sum(n-1)+n;
}
C語言:利用遞推法計算下列公式:y=1+1/(1*2)+1/(2*3)+1/(3*4)+…要求精確到10的-6次方。
#include stdio.h
void main()
{
double b=1.0,sum=1.0,i=1;
do
{
b=1/(i*(i+1));
sum+=b;
i++;
}while(b=0.000001);
printf(“%lf”,sum);
}
//運行的結果說1.999001
有關C語言用遞推方法的問題
遞推演算法是一種用若干步可重複運算來描述複雜問題的方法.遞推是序列計算機中的一種常用演算法。它是按照一定的規律來計算序列中的每個項,通常是通過計算機前面的一些項來得出序列中的指定象的值。其思想是把一個複雜的龐大的計算過程轉化為簡單過程的多次重複,該演算法利用了計算機速度快和不知疲倦的機器特點。
【例】
植樹節那天,有五位同學參加了植樹活動,他們完成植樹的棵樹都不相同。問第一位同學植了多少棵時,他指著旁邊的第二位同學說比他多植了兩棵;追問第二位同學,他又說比第三位同學多植了兩棵;… 如此,都說比另一位同學多植兩棵。最後問到第五位同學時,他說自己植了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 最後的返回值
把這個直接填到被調函數裡面就可以了
原創文章,作者:VUVU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139677.html