C代码收藏(一)

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.

猜你喜欢

转载自gxl-ct001.iteye.com/blog/2302450
今日推荐