javaSE練習2——流程控制_2.2
一、假設某員工今年的年薪是30000元,年薪的年增長率6%。編寫一個Java應用程式計算該員工10年後的年薪,並統計未來10年(從今年算起)總收入。
package com.test;
public class t01 {
public static void main(String[] args) {
double salary = 3000; // 年薪
long sum = 0; // 總工資
for (int i = 1; i <= 10; i++) {
salary = salary * (1 + 0.06); // 計算年薪
sum += salary; // 計算總工資
}
System.out.println("年薪為:" + salary + "\n總工資為:" + sum);
}
}
效果圖如下:
二、猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。程式分析:採取逆向思維的方法,從後往前推斷。
package com.test;
public class t02 {
public static void main(String[] args) {
int sum = 1;
for (int i = 2; i <= 10; i++) {
sum = (sum + 1) * 2;
}
System.out.println("猴子第一天摘了 " + sum + " 個桃子");
}
}
效果圖如下:
三、編寫一個程式,計算郵局匯款的匯費。如果匯款金額小於100元,匯費為一元,如果金額在100元與5000元之間,按1%收取匯費,如果金額大於5000元,匯費為50元。匯款金額由命令列輸入。
package com.test;
import java.util.Scanner;
public class t03 {
public static void main(String[] args) {
double a, b = 0;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入匯款金額:");
a = sc.nextInt();
if (a > 5000) {
b = 50;
} else if (100 <= a) {
b = a * 0.01;
} else if (100 > a) {
b = 1.0;
}
System.out.println("匯費為:" + b);
}
}
效果圖如下:
四、分別使用for迴圈,while迴圈,do迴圈求1到100之間所有能被3整除的整數的和。
package com.test;
public class t04 {
public static void main(String[] args) {
int i, a = 0; // 全域性變數
// for迴圈
for (i = 1; i <= 100; i++) {
if (i % 3 == 0)
a = a + i;
System.out.println(a);
}
// while迴圈
/*
* while (i < 101) { if (i % 3 == 0) { a = a + i; } i++; }
* System.out.println(a);
*/
// do...while迴圈
/*
* do { if (i % 3 == 0) { a = a + i; } i++; } while (i < 100);
* System.out.println(a);
*/
}
}
效果圖:忽略······
五、 輸出0-9之間的數,但是不包括5。
package com.test;
public class t05 {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
if (i == 5) {
continue;
}
System.out.println(i);
}
}
}
效果圖如下:
六、編寫一個程式,求整數n的階乘,例如5的階乘是1*2*3*4*5。
package com.test;
import java.util.Scanner;
public class t06 {
public static void main(String[] args) {
int a, b = 0, x = 1;
Scanner sc = new Scanner(System.in);
System.out.println("請輸入:");
a = sc.nextInt();
for (b = 1; b <= a; b++) {
x *= b; // 相當於x = x * b;
}
System.out.println(a + " 的階乘為:" + x);
}
}
效果圖如下:
七、編寫一個程式,找出大於200的最小的質數。
package com.test;
public class t07 {
public static void main(String[] args) {
for (int i = 200; i < 300; i++) {
boolean x = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
x = false;
break;
}
}
if (!x) {
continue;
}
System.out.println(i);
break;
}
}
}
效果圖如下:
八、由命令列輸入一個4位整數,求將該數反轉以後的數,如原數為1234,反轉後的數位4321。
package com.test;
import java.util.Scanner;
public class t08 {
public static void main(String[] args) {
int a, b, c, d, e, x;
Scanner sc = new Scanner(System.in);
System.out.println("輸入數字:");
e = sc.nextInt();
a = e / 1000;
b = e / 100 % 10;
c = e / 10 % 10;
d = e % 10;
x = d * 1000 + c * 100 + b * 10 + a;
System.out.println("反轉後數為:" + x);
}
}
效果圖如下: