刚刚我们说了循环,那接下来,我们也做几道练习题吧
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>