题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
输入描述:
输入一个数字(不一定是整数,小于100m),表示要游的目标距离。
输出描述:
输出一个整数,表示小玉一共需要游多少步。
示例
输入:4.3
输出:3
题解:无
答案代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
double first, needs, target, M;
scanf("%lf", &target);
first = 2.0;
n = 1;
needs = first;
M = first;
while (1) //死循环
{
if (needs > target) //判断是否符合条件
{
printf("%d\n", n);
break;
}
M = M * 0.98; //每一步为上一步的98%,M(=2.0)的累积
needs += M; //总共游的距离needs(=2.0)的累加
n++;
}
return 0;
}