【程序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; }