---
# System prepended metadata

title: JavaScript作業JAVA版
tags: [JavaScript, JAVA]

---

###### tags: `JAVA` `JavaScript`

# JavaScript作業JAVA版
### amstrong
power次方數
例 : 5的4次方 five to the power of four
```
//Amstrong數是指一個三位數的整數，其各位數之立方和等於該數本身。
//找出所有的Amstrong數。
//說明：153=1^3+5^3+3^3，故153為Amstrong數。

public class amstrong {

	public static void main(String[] args) {
		
		int hun,ten,di;//百、十、個
		for(int i=1;i<1000;i++)//這裡寫要取的amstrong數範圍
		{
			hun=i/100;
			ten=(i%100)/10;//十位
			di=i%10;//個位
			if(isAmstrong(i,hun,ten,di))
			{
				System.out.printf("%d\t",i);
			}
		}
	}
	private static boolean isAmstrong(int i,int hun,int ten,int di)
	{
		int sum;
		//因為Math.pow預設跑出來的資料型態是double
		sum=(int) (Math.pow(hun,3)+Math.pow(ten,3)+Math.pow(di,3));
		
		if(i==sum)
			return true;
		else
		{
			return false;
		}
	}

}
```
---
### expression

```
//利用for迴圈計算1^2-2^2+3^2-4^2+…+49^2-50^2的值。

public class expression {

	public static void main(String[] args) {
		int max = 50;
		int sum = 0;
		for (int i = 0; i < max; i++) {
			if (i % 2 == 0) {
				sum += (i + 1) * (i + 1);
				continue;
			}
			sum -= (i + 1) * (i + 1);
		}
		System.out.println(sum);
	}
}

```
---

### expression(錯的題目)
```
//利用for迴?計算12-22+32-42+…+492-502的值。

public class expression {

	public static void main(String[] args) {
		int max = 50;
		int sum = 0;
		for (int i = 0; i < max; i++) {
			if (i%2==0) {
				sum=sum+Integer.parseInt((i+1)+"2");
				continue;
			}
				sum=sum-Integer.parseInt((i+1)+"2");
		}
		System.out.println(sum);
	}
}
```
---
### factor
```
//輸入一正整數，求其所有的因數。
//說明：36的因數為1, 2, 3, 4, 6, 9, 12, 18, 36。

public class factor {
    public static void main(String[] args) {
        int i= 36;
    	showInt(i);
    }
 
    private static void  showInt(int i) {
        System.out.print("數字"+i+"的因數: ");
        System.out.print("1");
        for (int j = 2; j <=i; j++) {
            if(i%j==0)System.out.print(","+j);//餘數0為因數
        }
    }
}
```
---






### leapYear
```
//輸入一西元年，如2015。判斷此年份是否為閏年。
//提示：每四年一閏，每百年不閏，每四百年一閏。

public class leapYear {

	public static void main(String[] args) {
		int year = 3;

		if ( year%4!=0||(year%100==0 && year%400!=0) ) {
			System.out.println(false);
			return;
		}
		System.out.println(true);
		
//		if (year%400==0) {
//			System.out.println(true);
//			return;
//		}
//		if (year%100==0) {
//			System.out.println(false);
//			return;
//		}
//		if (year%4==0) {
//			System.out.println(true);
//			return;
//		}
//		System.out.println(false);
	}

}
```
---
### perfectNumber
```

//一個數字若等於其所有因數的總和，則此數為perfect number。
//找出100以內所有的完美數。
//說明：6的因數為1, 2, 3，6=1+2+3，故6為完美數。

public class perfectNumber {
	public static void main(String[] args) {
		for (int i = 0; i <= 100; i++) {
			showInt(i);
		}
	}

	private static void showInt(int i) {
		int sum = 0;
		String str = "其因數為:";
		for (int j = 1; j < i; j++) {
			if (i % j == 0) {
				sum += j;// 餘數0為因數
				str += j + ",";
			}
		}
		if (sum == i) {
			System.out.println(i + str);
		}
	}
}
```
---
### perfectNumber小改版
```
//一個數字若等於其所有因數的總和，則此數為perfect number。
//找出100以內所有的完美數。
//說明：6的因數為1, 2, 3，6=1+2+3，故6為完美數。

public class perfectNumber2 {
	public static void main(String[] args) {
		for (int i = 2; i <= 100; i++) {
			showInt(i);
		}
	}

	private static void showInt(int i) {
		int sum = 1;
		String str = "其因數為:1";
		for (int j = 2; j < i; j++) {
			if (i % j == 0) {
				sum += j;// 餘數0為因數
				str += ","+ j;
			}
		}
		if (sum == i) {
			System.out.println(i + str);
		}
	}
}
```
---
### prime
```
//輸入一正整數，找出所有小於或等於的質數。

public class prime {

	private static boolean isPrime(int number)
	{
			for(int j=2;j<number;j++)
			{
				if(number%j==0) return false; //如果可以被整除，number不是質數
			}
			return true; //如果整個迴圈跑完都沒有被整除，number是質數]
	}
	public static void main(String[] args) {
		int count=0;//數有幾個質數
		for(int i=1;i<=200;i++)
		{
			if(isPrime(i))
			{
				//如果isPrime的結果為true,印出質數
				count++;
				System.out.printf("%d\t",i);
			}
		}
		System.out.printf("\n質數共有%d個",count);
	}
}
```
---
### rabbit
```
//老王養了一群兔子，若三隻三隻一數，剩餘一隻；若五隻五隻一數，剩餘三隻；若七隻七隻一數，剩餘二隻。試問兔子最少有幾隻。

public class rabbit {
	public static void main(String[] args) {
		int maxRabbits = 1000;
		for (int i = 0; i < maxRabbits; i++) {
			if(i%3==1&&i%5==3&&i%7==2) {
				System.out.println(i);
				return; //return拿掉可得到其他符合答案的非最少兔子數。
			}
		}
	}
}

```
---
### refund
```
import java.util.ArrayList;
import java.util.List;
//輸入在某商店購物應付金額與實付金額。
//實付金額小於應付金額，則印出”金額不足”。
//實付金額等於應付金額，則印出”不必找錢”。
//實付金額大於應付金額，則輸出找回金額最少的鈔票數和錢幣數。
//假設幣值只有1000, 500, 100元紙鈔和50, 10, 5, 1元硬幣。
//說明：若買了132元的商品，付1000元，應找回一張500元，三張100元，一個50元硬幣，一個10元硬幣，一個5元硬幣和三個1元硬幣。

public class refund {
		public String name; //幣種屬性
		public int value ;
		public int amount;
		public refund(String name,int value,int amount) {
			this.name = name;
			this.value = value;
			this.amount = amount;
		}	

	public static void main(String[] args) {
		int price = 201;
		int pay = 1300;
		int change = pay - price; //找錢總金額
		List<refund> wallet= new ArrayList<>();
		wallet.add(new refund("1000元", 1000, 0));//將幣種從大到小加入
		wallet.add(new refund(" 500元", 500, 0));
		wallet.add(new refund(" 100元", 100, 0));
		wallet.add(new refund("  50元", 50, 0));
		wallet.add(new refund("  10元", 10, 0));
		wallet.add(new refund("   5元", 5, 0));
		wallet.add(new refund("   1元", 1, 0));
		for (refund nowCoin : wallet) { //foreach錢包內的幣種
			nowCoin.amount=change/nowCoin.value; //會使用幾個當前幣種
			change=change-nowCoin.amount*nowCoin.value; //找錢扣掉已經找完的大鈔
			if (nowCoin.amount>0) {
				System.out.println("找零 "+nowCoin.name+" "+nowCoin.amount + "份");
			}
		}
	}
}
```
---
### rope
```
//若有一條繩子長3000公尺，每天剪去一半的長度，需多少天繩子的長度會短於5公尺。

public class rope {

	public static void main(String[] args) {
		double ropeLength = 3000;
		double ropeShort = 5;
		int count = 0;
		while (ropeLength>=ropeShort) {
			ropeLength=ropeLength/2;
			count+=1;
		}
		System.out.println(count);
	}

}
```
---
### salary
```
//輸入便利商店工讀生的工作時數，並計算其薪資。
//60小時以內，時薪120元。
//61~80小時，以時薪1.25倍計算。150
//81小時以上，以時薪1.5倍計算。180
//說明：薪資以累計方式計算。若工時為90小時，則薪資為60*120 + 20*120*1.25 + 10*120*1.5元。

public class salary {

	public static void main(String[] args) {
		int hours = 74;
		double salary;
		salary = hours*120;
		if (hours-60>0) {
			salary+=(hours-60)*30;
		}
		if (hours-80>0) {
			salary+=(hours-80)*30;
		}
		System.out.println(salary);
//		System.out.println(hours);
//		System.out.println(80-hours%80);
//		System.out.println(60-hours%80%60);
	}

}
```
---
### season

```
//選擇性敘述的練習-season
//輸入月份1~12月，利用switch判斷相對應的季節春、夏、秋、冬並印出。若不在此範圍則印出”輸入錯誤”。

public class season {

	public static void main(String[] args) {
		int month = 8;
		switch (month) {
		case 3: case 4: case 5:System.out.println("春");
			break;
		case 6: case 7: case 8:System.out.println("夏");
			break; 
		case 9: case 10: case 11:System.out.println("秋");
			break;
		case 1: case 2: case 12:System.out.println("冬");
			break;
		default:System.out.println("輸入錯誤");
			break;
		}
	}

}
```


---