1.1 求100以内所有能被3和7整除的数的和
-
题目描述:
- 把1-100之间所有能够被3和7同时整除的数找出来,计算累加和
-
题目提示:
- 在算入累加和之前,使用%判定遍历到的数字是不是可以被3和7整除
1.创建1-100 while for 2. 条件判断 数字%3==0 && 数字% 7==0 数字 % 21 ==0 3.准备一个容器 这个容器 声明的时候一定在循环外边 var sum = 0; // 如果和一定是整数 那么声明变量的时候 先填充0 // 如果在循环里边 var sum=0; 那么就是 每次循环 sum重新归零 for(var i=1;i<=100;i++){ if(i % 21 ==0 ){ sum+=i; //如果在这里打印sum 那么每次循环都会打印一次和 } } // 整个循环结束 查看sum的结果
1.2 将 1000 ~ 2000 之间所有的闰年输出在页面上
每四个一换行
-
提示
- 构建1000~2000年
- 闰年判断
- 需要一个计数器 每一行数量为4 第五个 就要
document.write("<br />")
换行。
// 构建 1000 - 2000 年 var count = 0; for (var year = 1000; year <= 2000; year++) { // console.log(year); //判断1000 1001 ... 2000 每个年份是否是闰年 if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) { document.write(year + " "); count++; if(count % 4 ==0){ document.write("<br />") } } }
1.3 求水仙花数字
-
水仙花数字(三次自幂数)
=> 要求:-
是一个三位数
-
每一位的三次方之和 和 这个数字相等
-
例子: 153
-> 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3 -> 1 125 27 -> 153
-
分析:
1. 构建所有的三位数 100 ~ 999 => 判断一个数字的 每一位的三次方之和 是否和这个数字相当 2. 提取百位 十位 个位
-
*/
188 parseInt(188 / 100)
parseInt(188 %100 /10)
188 % 10
for(var i=100;i<1000;i++){
//alert(i);
var h = parseInt(i / 100);
var t = parseInt(i %100 /10);
var n = i % 10;
if(h**3+t**3+n**3 == i){
console.log(i);
}
}
1.4 求两个数字的最大公约数
准备2个数值。max 和min
- 约数: 能被该数字整除的数字
- 例子: 12 的约数 1 2 3 4 6 12
- 公约数: 能分别被两个数字整除的
- 例子: 12 和 8 的公约数 4
- 最大公约数: 两个数字的所有公约数内最大的那一个
- 例子: 12 和 8 的最大公约数 4
分析:
1. 重复做的事情是:
判断一个数字是否能同时被 max 和 min 整除
max % 数字 === 0 && min % 数字 === 0
2. 你是否需要一组有规律的数字 ?
需要
公约数的最小取值 公约数的最大取值
12 8
相对小的那个数字
# 最大公约数 一定是 两个数中最小的那个数字
# 12 和 8的最大公约数 最大到8
# 1 2 3 4 5 6 7 8
# 1 2 4
# 4
var max = parseInt(prompt('请输入第一个数字:'));
var min = parseInt(prompt('请输入第二个数字:'));
var test = min<max?min:max;
for(var i=1;i<=test;i++){
if( max % i === 0 && min % i === 0){
console.log(i)
}
}
1.5 求两个数字的最小公倍数
准备2个数值。max 和min
- 公倍数: 能同时整除两个数字
1.例子: 12 和 18 -> 36 72 …- 最小公倍数:
2. 所有公倍数内最小的那 12 18 -> 36
- 最小公倍数:
分析:
1. 你需要重复做的事情是什么 ?
=> 判断是否能整除 min 和 max
=> 数字 % min === 0 && 数字 % max === 0
2. 你是否需要一组有规律的数字 ?
=> 公倍数的最小取值 两个数字 较大的数字
=> 公倍数的最大取值 两数的积
3. 步长设置多少合适 ?
=> 18 的 1 倍是 18
=> 18 的 2 倍是 36
=> 因为 1 和 2 之间没有整数了, 所以 19 ~ 35 之间的所有数字一定不能整除 18
=> 18 的 3 倍是 54
=> 因为 2 和 3 之间没有整数了, 所以 37 ~ 53 之间的所有数字一定不能整除 18
=> 每次的步长都是 18 就可以了(相对较大的数字)
var max = parseInt(prompt('请输入第一个数字:'));
var min = parseInt(prompt('请输入第二个数字:'));
var test = max > min ? max : min;
var res = max;
for (var i = max * min; i >=test; i--) {
if (i % max === 0 && i % min === 0) {
res = i;
}
}
console.log(res);
// 用两个数的乘积 / 两个数字的最大公约数 = 两个数的最小公倍数