P1423 小玉在游泳

题目描述

小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游 2 2 2 米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的 98 % 98\% 98%。现在小玉想知道,如果要游到距离 s s s 米的地方,她需要游多少步呢。请你编程解决这个问题。

输入格式

输入一个实数 s s s(单位:米),表示要游的目标距离。

输出格式

输出一个整数,表示小玉一共需要游多少步。

1.题目分析

该题考查的是等比数列求前N项和,用循环和判断就可以解决。

2.题目思路

写一个等比数列的函数,用于求每天前进的距离。然后循环判断,每天求和,当和大于键入的总路程时,跳出循环,打印天数。

3.代码实现

#include 
#include 
//计算第N步的距离
double len(int n){
    return 2* pow(0.98,n);
}

int main(){
    double s,res = 0;
    scanf("%lf",&s);
    int i=0;
    while (true){
    //每天的总距离
        res+= len(i);
        //判断是否到达终点
        if (res >= s){
            break;
        }
        i++;
    }
    printf("%d",i+1);

    return 0;
}

你可能感兴趣的:(刷题go,go,go,算法)