一些简单的java编程题(3) ————小球落地问题
2018-01-30 21:22
288 查看
版权声明:本文为博主原创文章,未经博主允许不得转载。
/* (程序头部注释开始)
版权声明:保留个人权利。 如程序有不当之处,敬请指正。
* 文件名称: 《一些简单的java编程题(3) ————小球落地问题》
* 作 者: 那就去巴黎
* 完成日期: 2018 年 01 月 30 日
* 版 本 号: JDK 9.0.1
问题描述:
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下。求它在 第 n 次落地时,经过的路程?第 n 次落地后反弹多高?
题目分析:
第一次落地时,经过的路程为起始高度,之后每次加上上一次后反弹高度的两倍。
例如:第二次落地时,路程为 起始高度+第一次落地后反弹高度的两倍。
第三次落地时,路程为 起始高度+第一次落地后反弹高度的两倍+第二次落地后反弹高度的两倍。
* (程序头部的注释结束)
*/
package questions;
import java.util.Scanner; //导入java.util包中的Scanner这个工具类
public class Q3
{
public static void main(String[] args)
{
System.out.print("请输入小球第一次落地前的起始高度和落地反弹的次数:");
Scanner scan = new Scanner(System.in);
scan.useDelimiter("\\s"); // Scanner.useDelimiter 方法接受一个正则表达式。 "\\s" :正则表达式,表示以一个空白字符(A whitespace character)为分隔符。
double h = scan.nextDouble();
int n = scan.nextInt();
distance(h,n);
scan.close(); // 关闭配置内存
}
private static void distance(double h, int n)
{
double length=0;
double firstdistance=h; // 把起始高度先提取出来
for(int i=0;i<n;i++)
{
length+=2*h;
h/=2;
}
length-=firstdistance; //得到总路程
System.out.println("第"+n+"次落地时,小球共经过"+length+"米,"+"第"+n+"次落地后反弹高度为"+h+"米");
}
}程序运行结果如下:
![](https://img-blog.csdn.net/20180130211937537?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2xzZ2RzYg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
/* (程序头部注释开始)
版权声明:保留个人权利。 如程序有不当之处,敬请指正。
* 文件名称: 《一些简单的java编程题(3) ————小球落地问题》
* 作 者: 那就去巴黎
* 完成日期: 2018 年 01 月 30 日
* 版 本 号: JDK 9.0.1
问题描述:
一球从 h 米高度自由落下,每次落地后反跳回原高度的一半再落下。求它在 第 n 次落地时,经过的路程?第 n 次落地后反弹多高?
题目分析:
第一次落地时,经过的路程为起始高度,之后每次加上上一次后反弹高度的两倍。
例如:第二次落地时,路程为 起始高度+第一次落地后反弹高度的两倍。
第三次落地时,路程为 起始高度+第一次落地后反弹高度的两倍+第二次落地后反弹高度的两倍。
* (程序头部的注释结束)
*/
package questions;
import java.util.Scanner; //导入java.util包中的Scanner这个工具类
public class Q3
{
public static void main(String[] args)
{
System.out.print("请输入小球第一次落地前的起始高度和落地反弹的次数:");
Scanner scan = new Scanner(System.in);
scan.useDelimiter("\\s"); // Scanner.useDelimiter 方法接受一个正则表达式。 "\\s" :正则表达式,表示以一个空白字符(A whitespace character)为分隔符。
double h = scan.nextDouble();
int n = scan.nextInt();
distance(h,n);
scan.close(); // 关闭配置内存
}
private static void distance(double h, int n)
{
double length=0;
double firstdistance=h; // 把起始高度先提取出来
for(int i=0;i<n;i++)
{
length+=2*h;
h/=2;
}
length-=firstdistance; //得到总路程
System.out.println("第"+n+"次落地时,小球共经过"+length+"米,"+"第"+n+"次落地后反弹高度为"+h+"米");
}
}程序运行结果如下:
相关文章推荐
- 一些简单的java编程题(2) ————古典问题(兔子问题)
- 一些简单的java编程题(5) ————鸡兔同笼问题
- 一些简单的java编程题(8) ————判断成绩等第
- 一些简单的java编程题(12) ————9*9乘法口诀
- 一些简单的java编程题(1) ————求10000以内的完数
- 一些简单的java编程题(13) ————打印菱形
- JAVA学习中应该注意的一些简单问题?
- 一些简单的java编程题(9) ————求最大公约数和最小公倍数
- 一些基础的java问题及一道简单的java题和我的回答
- 一些简单的java编程题(10) ————判断完全平方数
- JavaWeb中的一些简单操作(四) 页面间的跳转的本质以及url乱码问题解决
- 一些简单的java编程题(6) ————水仙花数
- 一些简单的java编程题(7) ————判断素数
- JAVA学习中应该注意的一些简单问题?
- 一些简单的java编程题(4) ————正整数分解质因数
- 我需要帮助啊 !!!JAVA的一些问题啊???
- 关于JAVA的简单问题(NO1)
- Java中关于String的简单而又深入的问题!
- 一些有趣的JAVA问题!
- 关于初学JAVA里的一些问题!