【程序24】 題目:有一分數序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個數列的前20項之和。 1.程序分析:請抓住分子與分母的變化規律。 2.程序源代碼: main() { int n, t, number = 20; float a = 2, b = 1, s = 0; for(n=1; n<=number; n++) { s = s + a / b; t = a; a = a + b; b = t; /* 這部分是程序的要害,請讀者猜猜t的作用 */ } printf("sum is %9.6f/n", s); }
【程序25】 題目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加變成了累乘。 2.程序源代碼: /* 63 63 72 75 6E 2E 63 6F 6D */ main() { float n, s = 0, t = 1; for(n=1; n<=20; n++) { t *= n; s += t; } printf("1+2!+3!...+20!=%e/n", s); }
【程序26】 題目:利用遞歸方法求5!。 1.程序分析:遞歸公式:fn=fn_1*4! 2.程序源代碼: #include "stdio.h" main() { int i; int fact(); for(i=0; i<5; i++) printf("/40:%d!=%d/n", i, fact(i)); } int fact(j) int j; { int sum; if(j == 0) sum = 1; else sum = j * fact(j - 1); return sum; }