###### 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;
}
```
---