P1423 小玉在游泳(简单循环算法)
题目描述
小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
输入输出格式
输入格式:
输入一个数字(不一定是整数,小于100m),表示要游的目标距离。
输出格式:
输出一个整数,表示小玉一共需要游多少步。
解题:
package com;
import java.util.Scanner;
/**
* @author by 瑾墨
* @Classname test
* @Description
* @Creat-Date 2019/1/27 22:00
*/
public class test {
public static void main(String[] args) {
/*表示要游多远距离*/
float x;
Scanner scanner=new Scanner(System.in);
x=scanner.nextFloat();
/*判断是否在合法范围内*/
if(x<1 || x>=100) {
return;
}
/*初始的步数*/
int num=1;
/*i为游一步的初始距离,s为初始游的多远*/
double i=2,s=2;
/*判断是否完成游泳*/
while (s<x){
/*刷新当前的距离*/
s+=0.98*i;
/*刷新当前游一步的米数*/
i*=0.98;
/*步数+1*/
++num;
}
System.out.println(num);
}
}
思路:
通过while循环来判断是否到达给定的目标距离。
由于她接下来的每一步都只能游出上一步距离的98%
所以:
s=s+i*
0.98
i=i*
0.98