for循环作业
第四题:用户输入一个数字n,计算1+2+3+4+……n的和。
// let n = parseInt(prompt("请输入一个数字"))
// let sum = 0
// for(let i = 1; i <= n; i++){
// sum += i
// }
// alert(`1+2+3+...+n的和为${sum}`)
第五题:用户输入一个数字n
// let n = parseInt(prompt("请输入一个数字"))
// let sum = 0
// for(let i = 2; i <= n; i++){
// sum += (i+1) / i
// }
// alert(`3/2+4/3+5/4+...+n+1/n的和为${sum}`)
第六题:用户输入一个数字,在控制台中列出它的所有约数。
//@1 正序求解
// var n = parseInt(prompt("请输入一个数字"));
// var sum = 0;
// for(var i = 1 ; i <= n ;i++){
// if(n%i == 0){
// console.log(i);
// sum += i;
// }
// }
// alert(`${n}所有约数的和为${sum}`)
//@2 倒序循环求解
// let n = parseInt(prompt("请输入一个数字"));
// for(i = n ; i >= 1 ; i--){
// if(n % i == 0){
// console.log(i);
// }
// }
第七题:在控制台输出1~1000之中,所有能被5整除,或者被6整除的数字。
// for(let i = 1; i <= 1000; i++){
// let num1 = i % 5
// let num2 = i % 6
// if(num1 + num2 == 0){
// console.log("既能被5整除,也能被6整除的有:" + i)
// }else if(num1 == 0){
// console.log("能被5整除的有:" + i)
// }
// else if(num2 == 0){
// console.log("能被6整除的有:" + i)
// }
// }
方法二:
// for (var i = 1; i <= 1000; i++) {
// if (i % 5 == 0 || i % 6 == 0){
// console.log(i)
// }
第八题:大家从小到大,都玩儿过的一个庸俗的游戏:
游戏玩儿法就是,大家轮流报数,如果报到能被7整除的数字,或者尾数是7的数字,都算踩地雷了。就应该罚唱歌。
请在控制台输出1~60之间的所有“安全数”。
比如:
1、2、3、4、5、6、8、9、10、11、12、13、15、16、18、19、20、22、23、24、25、26、29、30……
// for(let i = 1; i <= 60; i++){
// if(i % 10 != 7 && i % 7 != 0){
// console.log("安全数为:" + i)
// }
// }
// 短路算法
// for(var i = 1; i <= 60; i++){
// (i % 7 != 0 && i % 10 != 7) && console.log(i)
// }
第九题:水仙花数是一种特殊的三位数,它的特点就是,每个数位的立方和,等于它本身。
比如153就是水仙花数。因为:
1 3+53+33 = 153
100~999之内,只有4个水仙花数,请编程找出来。
// for(let i = 1; i <= 9; i++){
// for(let j = 9; j >= 0; j--){
// for(let k = 9; k >= 0; k--){
// let sum = Math.pow(i,3) + Math.pow(j,3) + Math.pow(k,3)
// let res = 100 * i + 10 * j + k
// if(sum == res){
// console.log(res)
// }
// }
// }
// }
第十题:如果一个数恰好等于它的因数(除了这个数字自身)之和,则称该数为“完美数”。
例如:
第1个完全数是6,它有因数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。
第2个完全数是28,它有因数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
试寻找1~10000之间的所有完美数。
//第十题:除去本身外的因数相加等于本身的完美数
// for(var i = 1; i <= 10000; i++){
// var sum = 0;
// for(var j = 1; j < i; j++){
// if(i % j == 0){
// sum += j
// }
// }
// if(sum == i){
// console.log(i + "是完美数")
// }
// }
第十一题:苹果3元一个,鸭梨2元一个,桃子1元一个。现在想用200元买100个水果,在控制台中列出所有可能性。
// let count = 0
// for(let i = 100; i >= 0; i--){
// for(let j = 100 - i; j >= 0; j--){
// for(let k = 100 - i - j; k >= 0; k--){
// let sum = i + j + k
// let res = 3 * i + 2 * j + k
// if(sum == 100 && res == 200){
// count++
// console.log(count) //51种可能
// console.log("可能性有:" + i + "个苹果" + j + "个梨" + k + "个桃子")
// }
// }
// }
// }
第十二题:用户输入一个数字,判断这个数字是否是质数。
//第十二题:判断一个数是否是质数
//方法一
let n = parseInt(prompt("请输入一个数字"))
if(n == 2 || n == 3){
alert(`${n}是质数`)
}else if(n <= 1 || n % 2 == 0){
alert(`${n}不是质数`)
}else{
for(let i = 3; i <= Math.sqrt(n); i += 2){
if(n % i == 0){
alert(`${n}不是质数`)
end; //满足循环条件则直接结束,不满足则结束判断
}
}
alert(`${n}是质数`)
}
//1-50的质数有:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47
注意:if判断条件的优先级