循环的一些知识点
1,while循环结构
注意事项:
2,do while循环结构
3,for循环结构
1,输出一百以内7 的倍数或者个位数为7或者十位数为7的数
// 条件:包含7或7的倍数
// // // 包含7的条件
// // // 个位是7- 对10求余,余数是否是7
for (var a = 1; a <= 100; a++) {
if (a % 7 == 0 || a % 10 == 7 || parseInt(a / 10) == 7) {
console.log(a)
}
}
2,2.入职薪水10K,每年涨幅5%,50年后工资多少?
var money = 10000
for(var a=1; a<=50; a++) {
money = money + money * 0.05
}
console.log(money);
3.打印100–200之间所有能被3或者7整除的数
for(var a=100; a<=200; a++) {
if(a%3 === 0 || a%7 === 0) {
console.log(a);
}
}
4.求100-999之间的水仙花数。
for(var a=100; a<1000; a++) {
var bai = parseInt(a/100) //得到百位数
var shi = parseInt(a/10)%10//得到十位数
var ge = a%10 //得到个位数
if(bai*bai*bai + shi*shi*shi + ge*ge*ge === a) {
console.log(a);
}
}
5.求5的阶乘
var result = 1
for(var a=5;a>=1;a--) {
result = result * a
}
console.log(result);
*****6.打出九九乘法表
//双重for循环
document.write('<pre>');
for (var a = 1; a <= 9; a++) {
for (var b = 1; b <= a; b++) {
var result = a * b//得出两个数相乘的结果
document.write(b + '*' + a + '=' + result + ' ');
}
document.write('<br>');
}
7 在页面显示出1000-2000的所有闰年;并且每四位换行
8.打印三角形
// 打印正三角形核心思想:双重for循环,一个代表行,一个代表列
document.write('<pre>')
for (var a = 1; a <= 9; a++) { //代表行
for (var b = 1; b <= a; b++) { //代表列
document.write('*')
}
document.write('<br>')
}
正倒三角形
document.write('<pre>')
for (var a = 9; a >= 1; a--) {
for (var b = 1; b <= a; b++) {
document.write('*');
}
document.write('<br>');
}
9.用循环计算下面的结果
1 - 1/2 + 1/3 - 1/4 + ... - 1/100;
/*思路:var a=0;先定义一个存每一次得到的数
第一次是a=a+1/1;
第二次是a=a-1/2;
第三次是a=a+1/3;
第四次是a=a-1/4;
奇数为加,偶数为减;
*/
var a = 0; //定义一个变量存数据
for (var sum = 1; sum <= 100; sum++) {
if (sum % 2 == 0) {
a = a - 1 / sum;
} else {
a = a + 1 / sum
}
}
console.log(a)
10,求20以内所有数的阶乘和
var sum = 0; //设置一个变量存所有阶乘后的数相加的值 for (var a = 1; a <= 20; a++) { //循环一到20的数 var result = 1; // for (var b = 1; b <= a; b++) { result = result * b; } sum = result + sum; } console.log(sum)
11,
有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001kg,第二个里面放2粒,第三个里面放4,求棋盘上放的所有芝麻的重量,并输出每个格子放了几颗;
思路:
/*
1 1
2 2
3 4
4 8
5 16
*/
// 最终需求求所有芝麻的重量,先求数量,先求每个方格中芝麻的数量
// var num = 1 // 第一个方格中数量
// var sum = 0
// sum += num
// for(var a=2; a<=64; a++) {
// num = num * 2
// console.log('第'+a+'个方格中芝麻数量为'+num);
// sum += num
// }
// console.log(sum * 0.00001);
// var sum = 0
// for(var a=1;a<=64;a++) {
// sum += Math.pow(2, a-1)
// }
// console.log(sum);
12. 某人在银行有50000元存款。银行每月都要收取服务费,存款大于5000元时每个月收取总额的5%,总额不大于5000元的时候不收服务费;假设这个人存了以后从来都不用,用循环计算银行要扣这个人的手续费能扣多少次?每次扣取后剩余多少钱?
var money = 50000; //原本的钱 var k = 0 //设置一个计数器 while (money > 5000) { var kou = money * 0.05 //每一次扣的钱 money = money - kou; //剩下的钱 k++; //计数器 console.log('第' + k + '次扣完剩下' + money + '钱') } console.log(k)
13. 猴子摘桃,猴子摘了x个桃,每天吃一半,再多吃一个,第7天吃的时候剩下一个了,猴子摘了多少桃子?
/*
7 num = 1
6 num = num+1)*2 = 4
5 num = num+1)*2 = 10
4 num = num+1)*2 = 22
3 46
2 94
...
1 190
*/
var sum = 1
for (var i = 7; i > 1; i--) {
sum = (sum + 1) * 2
}
console.log(sum)
14.
11.有个皮球,每次落地弹起都是高度的一半,如果从10米高的地方丢下,第十次弹起时,皮球总过经历了多少距离。
解题思路:
计算总共经历的距离,就需要计算每次弹起的高度 + 落下的高度
h = 10
1 10 + 10/2 h+h/2 h=h/2
2 10/2 + 10/2/2 h+h/2 h=h/2
3 10/2/2 + 10/2/2/2
*/
// 初始高度
var h = 10
// 定义所有距离的容器
var result = 0
for(var a=1; a<=10; a++) {
// 计算每次经历的距离
var s = h + h/2
// 为了下次还可以使用新的h计算,将弹起的高度重新赋值给h
h = h/2
// 将所有的s相加的结果
result += s
}
console.log(result);
15. 12.输出100-200之间所有的素数 (素数,就是除了1和自己本身,不能被别的数整除)
// 素数:5 2 3 7 11 13 17 19 13
// 如何判断一个数是不是素数?
/*
19
19%2
19%3
19%4
19%5
%6
...
%18
*/
// var num = 101
// // 体面的着装
// var k = true
// // 循环处理重复的求余
// for(var a=2; a<num; a++) {
// if(num%a === 0) {
// // 不是素数
// k = false // 爬狗洞了,粘上土了
// break
// } /*else {
// // 2 3 4 5 6
// }*/
// }
// // 循环结束了,将所有数字都除过了,才能知道是素数
// // 经过判断,看看循环中是否有被整除过的情况
// // 条件:判断循环中是否被break了
// // 判断k是体面的,还是粘上土的
// if(k) {
// console.log('是素数');
// } else {
// console.log('不是素数');
// }