C代码收藏(一)
从今天开始收藏一些比较常见的小程序代码,留做学习之用。
1.有一分数序列: 2/1, 3/2, 5/3,8/5,13/8, 21/13 ... 求出这个数列的前20项之和。
#include <stdio.h> main() { int i, t, n = 20; float a = 2, b = 1, s = 0; for (i = 1; i <=n; i++) { s = s + a/b; t = a; a = a + b; // 将前一项与分母之和作为下一项的分子 b = t; // 将前一项的分子作为下一项的分母 } printf("sum = %9.6f\n", s); } 运行结果: sum = 32.660259
function sum(){
$t = 0;
$n = 20;
$a = 2;
$b = 1;
$sum = 0;
for ($i=1; $i <=$n ; $i++) {
$sum = $sum + $a/$b;
$t = $a;
$a = $a + $b;
$b = $t;
}
echo "sum = ".$sum;
}
运行结果:32.660260798642
2. 球落地反弹问题
问题描述: 一只球从 100 米高度自由落下,
每次落地后又反弹回原高度的一半,再落下。求它在第 10 次落地时,共经过多少 m?
第 10 次反弹多高?
#include <stdio.h> main() { float sn = 100, hn = sn / 2; int n; for (n = 2; n <= 10; n++) { sn = sn + 2 * hn; /* 第 n次落地时共经过的 米数 */ hn = hn / 2; /* 第 n次反跳的高度 */ } printf("第 10 次落地时共经过%f m.\n", sn); printf("第 10 次反跳%f m.\n", hn); } 运行结果: 第 10 次落地时共经过299.609375 m. 第 10 次反跳0.097656 m.