剛剛我們說了循環,那接下來,我們也做幾道練習題吧
1 ,用javascript打印出1-100之間奇數之和
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>奇數之和</title>
<script type="text/javascript">
/*打印1-100之間所有奇數之和*/
//保存奇數之和
// var sum = 0;
//打印1-100之間的數
for(var i=1,sum=0; i<=100; i++){
//判斷i是否是奇數
//不能被2整除的數是奇數
if(i % 2 != 0){
//如果i除以2有余數則證明i是奇數
// console.log(i);
sum += i;
}
}
console.log("奇數之和為:" + sum);
</script>
</head>
<body>
</body>
</html>
2,用javascript打印1-100之間所有7的倍數的個數及總和
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>7的倍數</title>
<script type="text/javascript">
/*打印1-100之間所有7的倍數的個數及總和*/
//定義一個變量,來保存總和
var sum = 0;
//定義一個計數器,來記錄數量
var count = 0;
//打印1-100之間的數
for(var i=1; i<=100; i++){
//判斷i是否是7的倍數
if (i % 7 == 0) {
// console.log(i);
sum += i;
//使計數器自增
count++;
}
}
console.log("總和為:" + sum);
console.log("個數為:" + count);
</script>
</head>
<body>
</body>
</html>
3,用javascript水仙花數
水仙花數是指一個3位數,它的每個位上的數字的3 次冪之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153),請打印所有的水仙花數。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>水仙花數</title>
<script type="text/javascript">
/*水仙花數是指一個3位數,它的每個位上的數字的3 次冪之和等于它本身。
(例如:1^3 + 5^3 + 3^3 = 153),請打印所有的水仙花數*/
//打印所有的三位數
for(var i=100; i<1000; i++){
//獲取i的百位、十位、個位的數字
//獲取百位數字
var bai = parseInt(i/100);
//獲取十位的數字
var shi = parseInt((i-bai*100)/10);
//獲取個位數字
var ge = i % 10;
//判斷i是否是水仙花數
if(bai**3 + shi**3 + ge**3 == i){
console.log(i);
}
}
</script>
</head>
<body>
</body>
</html>
4,在頁面中接收一個用戶輸入的數字,并判斷該數是否是質數。
- 質數:只能被1和它自身整除的數,1不是質數也不是合數,質數必須是大于1的自然數。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>是否是質數</title>
<script type="text/javascript">
/*
在頁面中接收一個用戶輸入的數字,并判斷該數是否是質數。
質數:只能被1和它自身整除的數,1不是質數也不是合數,質數必須是大于1的自然數
*/
var num = prompt("請輸入一個大于1的整數:");
//判斷這個值是否合法
if(num <= 1 || isNaN(num)){
alert('該值不合法!');
}else{
//創建一個變量來保存當前的數的狀態,默認當前num是質數
var flag = true;
//判斷num是否是質數
//獲取2-num之間的數
for(var i=2; i<num; i++){
// console.log(i);
//判斷num是否能被i整除
if(num % i ==0){
//如果能整除,說明num一定不是質數
flag = false;
}
}
//如果num是質數則輸出
if(flag){
alert(num + "是質數!");
}else{
alert(num + "不是質數!");
}
}
</script>
</head>
<body>
</body>
</html>
5 ,打印實現一個99乘法表
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>99乘法表</title>
<style type="text/css">
body{
width: 1500px;
}
span{
display: inline-block;
width: 100px;
}
</style>
<script type="text/javascript">
/*打印99乘法表
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
……
1*9=9 …… 9*9=81
*/
//創建外層循環,用來控制乘法表的高度(行)
for(var i=1; i<=9; i++){
//創建一個內層循環來控制乘法表的寬度(列)
for(var j=1; j<=i; j++){
document.write("<span>"+j+"*"+i+"="+i*j+"</span>");
}
//輸出一個換行
document.write('<br>');
}
</script>
</head>
<body>
</body>
</html>
6 ,打印出1-100之間所有的質數
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>1-100之間所有的質數</title>
<script type="text/javascript">
/*打印出1-100之間所有的質數
36
1 36
2 18
3 12
4 9
6 6
*/
//測試如下的程序的性能
//在程序執行之前,開啟計時器
//console.time("計時器的名字")可以用來開啟一個計時器
//它需要一個字符串作為參數,這個字符串將會作為計時器的標識
console.time("test");
for(var i=2; i<=10000; i++){
//創建一個布爾值,用來保存結果,默認i是質數
var flag = true;
//判斷i是否是質數
//獲取2-i之間的數//可以通過Math.sqrt()對一個數進行開方
for(var j=2; j<=Math.sqrt(i); j++){
// console.log(i);
//判斷i是否能被j整除
if(i % j ==0){
//如果能整除,說明i一定不是質數,修改flag值為false
flag = false;
//一旦進入判斷,則證明i不可能是質數了,此時循環再執行已經沒有任何意義了
//使用break來結束循環
break;
//不加242ms 加29ms 加開方2ms
}
}
//如果i是質數則輸出
//console.timeEnd()用來停止一個計時器,需要一個計時器的名字作為參數
if(flag){
console.log(i);
}
}
//終止計時器
console.timeEnd("test");
</script>
</head>
<body>
</body>
</html>