題目:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地時(shí),共經(jīng)過多少米?第10次反彈多高?

成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)蓬江,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108
這個(gè)題目,下面我會(huì)貼出來兩種代碼。其實(shí)這個(gè)題目,我煩了簡(jiǎn)單計(jì)算,想搞得有趣味性一點(diǎn),結(jié)果耽誤了好幾天時(shí)間,最后發(fā)現(xiàn)搞的也不好。
先第一種,為了解題而解題。
==== Main.java ====
public class Main {
private double TotalHeight = 100;
private double CurHeight = 50;
public void drop(int times) {
if ((times - 1) == 0) {
return;
}
setTotalHeight(getTotalHeight() + 2 * getCurHeight());
setCurHeight(getCurHeight() / 2);
drop(times - 1);
}
public double getTotalHeight() {
return TotalHeight;
}
public void setTotalHeight(double totalHeight) {
TotalHeight = totalHeight;
}
public double getCurHeight() {
return CurHeight;
}
public void setCurHeight(double curHeight) {
CurHeight = curHeight;
}
public static void main(String[] args) {
Main main = new Main();
main.drop(2);
System.out.println("Total height is " +
main.getTotalHeight());
System.out.println("Current height is " +
main.getCurHeight());
}
}
==== 然后是第二種 =====
==== Main.java ====
package main;
import javax.swing.JFrame;
import panel.BallPanel;
import time.Delay;
public class MainFrame extends JFrame {
public MainFrame(String title) {
super(title);
}
public static void main(String[] args) {
Delay delay = new Delay();
MainFrame frame = new MainFrame("Hello JFrame");
BallPanel ballPanel = new BallPanel();
frame.add(ballPanel);
frame.setSize(500, 500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
delay.initDelay();
ballPanel.setDelay(delay.getDelay());
ballPanel.loopDrop(0);
}
}
==== Delay.java ====
package time;
public class Delay {
public void initDelay() {
int g = 10;
int i = 0;
double s, t, t0 = 0.0;
delay = new int[100];
for (s = 100; s 10100; s += 100) {
t = Math.sqrt(2 * s / g);
delay[i++] = (int) ((t - t0) * 100);
t0 = t;
}
}
public int[] getDelay() {
return delay;
}
private int delay[];
}
==== BallPanel.java ====
package panel;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class BallPanel extends JPanel {
public BallPanel() {
super();
}
public void paint(Graphics g) {
g.clearRect(0, 0, this.getWidth(), this.getHeight());
g.setColor(Color.BLUE);
g.fillOval(250, ballCenter, 30, 30);
}
public void loopDrop(int height) {
int i;
if (this.height == height) { // At bottom
for (i = 0; i targetHeight; i += MUL) {
ballCenter = this.height - i;
this.repaint();
try {
Thread.sleep(delay[(targetHeight - i - 1) / MUL]);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
loopDrop(this.height - i);
} else { // At top
for (i = height; i this.height; i += MUL) {
ballCenter = i;
this.repaint();
try {
Thread.sleep(delay[(i - height) / MUL]);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
targetHeightV = targetHeightV / 2;
targetHeight = targetHeightV;
if (targetHeight != 0) {
loopDrop(i);
}
}
}
public void setDelay(int delay[]) {
this.delay = delay;
}
private int extracted() {
return 100 * MUL;
}
private int targetHeight = extracted();
private int targetHeightV = extracted();
private int ballCenter = 0;
private int height = extracted();
private int delay[];
private final int MUL = 4;
}
其實(shí)所謂的第二種,是用的JFrame在JPanel上畫圖,直觀的展示出來每次彈起來的效果。因?yàn)?00像素實(shí)在太小了,所以我做了一個(gè)變量MUL,相
當(dāng)于是等比例擴(kuò)大的效果。問題就是彈不到10次距離就用光了,所以。。。。。權(quán)當(dāng)娛樂了。。當(dāng)然可以等比例在放大,例如100M看成是10000像素,這
樣能多彈幾次。這個(gè)程序,最后球就在那里不動(dòng)了,程序不會(huì)自己退出。
第一行輸入數(shù)組的元素個(gè)數(shù),第二行輸入數(shù)組的元素,代碼如下:
import java.util.Scanner;
public ?class Test
{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("輸入數(shù)組元素個(gè)數(shù)");
int n=in.nextInt();
int[] a=new int[n];
System.out.println("輸入數(shù)組元素");
for(int i=0;in;i++)
a[i]=in.nextInt();
System.out.println("數(shù)組如下:");
for(int i=0;in;i++)
System.out.print(a[i]+" ");
}
}
(1)單行注釋:以“ // ”開頭后面接所要加的說明的內(nèi)容。如下面所示: //定義變量a int a = 10; //定義變量b int b = 20;上面的語句中,在編譯的過程就會(huì)直接略過注釋,只會(huì)編譯 int a = 10 和 int b = 20這兩句。由此可見注釋只是起著說明的作用。
(2)多行注釋:以“/*”開頭,以“*/”結(jié)尾。 假設(shè)當(dāng)你要說明你所寫的代碼的功能時(shí)。要說明的內(nèi)容有很多。如果全部放在同一行會(huì)顯得很難看。所以一般會(huì)用多行來寫,如下所示// 說明//說明//說明//說明以上是用四個(gè)單行注釋來注釋四行說明。但如果有10行說明就要按十個(gè)“//”這顯示很麻煩,所以這時(shí)就可采用多行注釋。上面的可改成:/*說明說明說明說明*/也可以這樣/* 說明 說明 說明 說明 */
(3)文檔注釋:以“/**”開頭,以“*/”結(jié)尾。文檔注釋主要是生成文檔的。
public class Main {
public static void main(String[] args) {
for (int i = 0; i 5; i++) //這一句控制5行的打印。
{
for (int j = 0; j 5 - i - 1; j++)
{
System.out.print(" ");
}//這一句共執(zhí)行 5-i-1次,即輸出 5-i-1個(gè)空格。
for (int k = 0; k 2*i+1; k++) {
System.out.print("*");
}//這一句共執(zhí)行 i+1次。即輸出2i+1個(gè)*。
//該輸出的都輸出了,換一行繼續(xù)打印。
System.out.println(); //打印一個(gè)回車符,即換行了。
}//你可以迭代一下每個(gè)i值,看看打印的個(gè)數(shù)對(duì)不對(duì)。
}
}下邊是我寫的其他程序。
注釋?? :??? 分為多行注釋?? 單行注釋
//第一種情況就是鼠標(biāo)點(diǎn)擊這個(gè)一行 (如圖所示) ??? ??? Ctrl +? /? 就OK
//單行注釋
效果:
//或者是選中
//效果
//第二種情況就是多行注釋?? 選中要注釋的部分(如圖所示)? Ctrl+Shift +/
效果:
//第三種情況多行注釋?? 選中要注釋的部分(如圖所示)? Ctrl +/
可以執(zhí)行多行代碼。你把想執(zhí)行的多個(gè)case語句中的break去掉,這幾行代碼就可以被執(zhí)行了。
當(dāng)然,通常我們不這樣用的。
分享文章:java多行代碼 Java多行字符串
本文路徑:http://chinadenli.net/article34/hgpspe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、企業(yè)網(wǎng)站制作、靜態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、域名注冊(cè)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)