---
# System prepended metadata

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

---

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

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

var hun, ten, di;//百、十、個
for (let i = 100; i < 1000; i++)//這裡寫要取的amstrong數範圍
{
    hun = parseInt(i / 100);
    ten = parseInt((i % 100) / 10);//十位
    di = parseInt(i % 10);//個位
    // if (isAmstrong(i, hun, ten, di)) document.write("%d\t", i);
    if (isAmstrong(i, hun, ten, di)) document.write("\t", i);
}

function isAmstrong(i, hun, ten, di) {
    let sum;
    //因為Math.pow預設跑出來的資料型態是double
    sum = (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的值。

var max = 50;
var sum = 0;
for (var i = 0; i < max; i++) {
    if (i % 2 == 0) {
        sum += (i + 1) * (i + 1);
        continue;
    }
    sum -= (i + 1) * (i + 1);
}
document.write(sum);

```
---

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

var max = 50;
var sum = 0;
for (var i = 0; i < max; i++) {
    if (i % 2 == 0) {
        sum = sum + parseInt((i + 1) + "2");
        continue;
    }
    sum = sum - parseInt((i + 1) + "2");
}
document.write(sum);
```
---
### factor
```
//輸入一正整數，求其所有的因數。
//說明：36的因數為1, 2, 3, 4, 6, 9, 12, 18, 36。

var i = 36;
showInt(i);

function showInt(i) {
    document.write("數字" + i + "的因數為: ");
    document.write("1");
    for (let j = 2; j <= i; j++) {
        if (i % j == 0) document.write("," + j);//餘數0為因數
    }
}
```
---






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

var year = 400;

if (year % 4 != 0 || year % 100 == 0 && year % 400 != 0) document.write(false);
else document.write(true);
```
---
### perfectNumber
```
//一個數字若等於其所有因數的總和，則此數為perfect number。
//找出100以內所有的完美數。
//說明：6的因數為1, 2, 3，6=1+2+3，故6為完美數。

for (i = 1; i <= 100; i++) {
    showInt(i);
}


function showInt(i) {
    var sum = 0;
    var str = "其因數為:";
    for (j = 1; j < i; j++) {
        if (i % j == 0) {
            sum += j;// 餘數0為因數
            str += j + ",";
        }
    }
    if (sum == i) {
        document.write(i + str + "<br>");
    }
}

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



for (i = 2; i <= 100; i++) {
    showInt(i);
}


function showInt(i) {
    var sum = 1;
    var str = "其因數為:1";
    for (j = 2; j < i; j++) {
        if (i % j == 0) {
            sum += j;// 餘數0為因數
            str += "," + j;
        }
    }
    if (sum == i) {
        document.write(i + str + "<br>");
    }
}

```

---

### prime
```
//輸入一正整數，找出所有小於或等於的質數。

var count = 0;//數有幾個質數
for (let i = 1; i <= 200; i++) {
    if (isPrime(i)) {
        //如果isPrime的結果為true,印出質數
        count++;
        document.write("\t", i);
    }
}
document.write("\n質數共有" + count + "個");

function isPrime(number) {
    for (let j = 2; j < number; j++) {
        if (number % j == 0) return false; //如果可以被整除，number不是質數
    }
    return true; //如果整個迴圈跑完都沒有被整除，number是質數
}    

```
---
### rabbit
```
//老王養了一群兔子，若三隻三隻一數，剩餘一隻；若五隻五隻一數，剩餘三隻；若七隻七隻一數，剩餘二隻。試問兔子最少有幾隻。

var maxRabbits = 1000;
for (let i = 0; i < maxRabbits; i++) {
    if (i % 3 == 1 && i % 5 == 3 && i % 7 == 2) {
        document.write(i);
        break; //break拿掉可得到其他符合答案的非最少兔子數。
    }
}


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

var price = 201;
var pay = 1300;
var change = pay - price; //找錢總金額

var wallet = [
    { name: '1000元', value: 1000, amount: 0 },
    { name: '500元', value: 500, amount: 0 },
    { name: '100元', value: 100, amount: 0 },
    { name: '50元', value: 50, amount: 0 },
    { name: '10元', value: 10, amount: 0 },
    { name: '5元', value: 5, amount: 0 },
    { name: '1元', value: 1, amount: 0 }
];

document.write("商品價格: " + price + " 元<br>")
document.write("付款金額: " + pay + " 元<br>")
document.write("應找總額: " + change + " 元<br><br>")

wallet.forEach(element => {
    element.amount = parseInt(change / element.value)
    change = change - element.amount * element.value;
    if (element.amount > 0) {
        document.write("找零 " + element.name + " " + element.amount + "份<br>");
    }
});

```
---
### rope
```
//若有一條繩子長3000公尺，每天剪去一半的長度，需多少天繩子的長度會短於5公尺。

var ropeLength = 3000;
var ropeShort = 5;
var count = 0;
while (ropeLength >= ropeShort) {
    ropeLength = ropeLength / 2;
    count += 1;
}
document.write(count);

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

var hours = 74;
var salary = hours * 120;
if (hours - 60 > 0) salary += (hours - 60) * 30;
if (hours - 80 > 0) salary += (hours - 80) * 30;
document.write(salary);

```
---
### season

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

var month = 8
switch (month) {
    case 3: case 4: case 5: document.write("春");
        break;
    case 6: case 7: case 8: document.write("夏");
        break;
    case 9: case 10: case 11: document.write("秋");
        break;
    case 1: case 2: case 12: document.write("冬");
        break;
    default: document.write("輸入錯誤");
        break;
}





```


---