1. 程式人生 > >java練習題(1)

java練習題(1)

1.輸入圓形半徑,求圓形的周長和圓形的面積,並將結果輸出。

import java.util.*;
public class TestCircle {
public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("請輸入圓的半徑:");
	double r=scanner.nextDouble();
	double c=2*3.14*r;
	double s=3.14*r*r;
	System.out.println("該圓的半徑為:R="+r);
	System.out.println("該圓的周長為:C="+c);
	System.out.println("該圓的面積為:S="+s);
			
}
}


輸出:
請輸入圓的半徑:
12.9
該圓的半徑為:R=12.9
該圓的周長為:C=81.012
該圓的面積為:S=522.5274000000001

2.銀行利率表如下表所示,請計算存款10000元,活期1年、活期2年,定期1年,定期2年後的本息合計。

    image.png

結果如下圖所示(結果四捨五入,不保留小數位。使用Math.round(double d)實現)。

 

    image.png

/**
 * 計算銀行利率
 * @author Memorial
 *
 */
public class TestDeposit {
public static void main(String[] args) {
	double a=10000;
	double b=0.35E-2;
	double c=1.10E-2;
	double d=1.30E-2;
	double f=1.50E-2;
	double g=2.10E-2;
	System.out.println("本金:"+Math.round(a));
	System.out.println("活期一年本金總計:"+Math.round((a+a*b)));
	System.out.println("定期一年本金總計:"+Math.round((a+a*f)));
	System.out.println("活期兩年本金總計:"+Math.round((a+a*b+(a+a*b)*b)));
	System.out.println("定期兩年本金總計:"+Math.round((a+a*g+(a+a*g)*g)));
}
}


輸出:
本金:10000
活期一年本金總計:10035
定期一年本金總計:10150
活期兩年本金總計:10070
定期兩年本金總計:10424

 

3.某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。結果如圖所示。

    image.png

import java.util.*;
/**
 *數字加密
 * @author Memorial
 *
 */
public class TestEncrypton {
public static void main(String[] args) {
	Scanner scanner=new Scanner(System.in);
	System.out.println("請輸入一個4位正整數:");
	int x=scanner.nextInt();
	//假設該四位數是abcd,將這四位數進行拆分
	int a=x/1000;
	int b=x%1000/100;
	int c=x%100/10;
	int d=x%10;
	//每位數字上都加上5,然後用和除以10的餘數代替該數字
	a=(a+5)%10;
	b=(b+5)%10;
	c=(c+5)%10;
	d=(d+5)%10;
	int y=1000*d+100*c+10*b+a;
	System.out.println("加密後的數字:"+y);
}
}


輸出:
請輸入一個4位正整數:
1234
加密後的數字:9876

大神編寫的程式碼:

package com.ftl;
 
import java.util.Scanner;
 
public class Demo6 {
 
	//題目:某個公司採用公用電話傳遞資料,資料是四位的整數,在傳遞過程中是加密的,
	//加密規則如下:每位數字都加上5,然後用和除以10的餘數代替該數字,再將第一位和第四位交換,第二位和第三位交換。
	//通過程式進行加密和解密
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		System.out.println("請輸入一個四位數:");
		int x = scanner.nextInt();
		Demo6 demo6 =new Demo6();
		System.out.println("加密之後的數字是:"+demo6.jiami(x));
		System.out.println("解密之後的數字是:"+demo6.jiemi(demo6.jiami(x)));
		
	}
 
	//加密過程
	public int jiami(int x) {
		//假設該四位數是abcd,將這個四位數進行拆分
		int a=x/1000;
		int b=x%1000/100;
		int c=x%100/10;
		int d=x%10;
		//每位數字都加上5,然後用和除以10的餘數代替該數字
		a=(a+5)%10;
		b=(b+5)%10;
		c=(c+5)%10;
		d=(d+5)%10;
		x=1000*d+100*c+10*b+a;
		return x;
	}
	
	
	//解密過程
	public int jiemi(int x) {
		//將加密後的數進行拆分
		int a=x/1000;
		int b=x%1000/100;
		int c=x%100/10;
		int d=x%10;
		//每位數字都加上5,然後用和除以10的餘數代替該數字
		a=(a+5)%10;
		b=(b+5)%10;
		c=(c+5)%10;
		d=(d+5)%10;
		x=1000*d+100*c+10*b+a;
		return x;
	}
	
	
	//寫完程式發現,加密過程和解密過程是一樣的
 
}