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