第一题:
小蓝每天都锻炼身体。正常情况下,小蓝每天跑 1千米。
如果某天是周一或者月初(1日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。小蓝跑步已经坚持了很长时间,从 2000年 1 月 1 日周六(含)到 2020 年 10 月 1 日周四(含)
请问这段时间小蓝总共跑步多少千米?
let sum = 0
let w = 6
let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
// 第一层遍历年
for (let year = 2000; year <= 2020; year++) {
// 第二层遍历月
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
days[1] = 29
} else {
days[1] = 28
}
for (let month = 0; month <= 11; month++) {
// 第三层遍历日
for (let date = 1; date <= days[month]; date++) {
if (date == 1 || w == 1) {
sum += 2
} else {
sum += 1
}
w = (w + 1) % 7
if (year == 2020 && month == 9 && date == 1) {
console.log('第1题', sum)
break
}
}
}
}
第二题:
请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?
var count = 0
for (let i = 1; i <= 2020; i++) {
i = i + ''
for (let j = 0; j < i.length; j++) {
if ('2' == i[j]) {
count++;
}
}
}
console.log('第2题', count);
第三题:
小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到
40 中这样的数包括 1、2、9、10 至32、39 和40,共28 个,他们的和是 574。
请问,在1到n中,所有这样的数的和是多少?
var total = 0
for (let i = 1; i <= 40; i++) {
i = i + ''
for (let j = 0; j < i.length; j++) {
if ('2' == i[j] || '9' == i[j] || '0' == i[j] || '1' == i[j]) {
total += Number(i)
break;
}
}
}
console.log('第3题', total);
第四题:
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个
以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
var peach = 1
for (let i = 0; i < 9; i++) {
peach = (peach + 1) * 2
}
console.log('第4题', peach)
第五题:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第10次落地时,共经过多少米?第10次反弹多高?
var height = 100
var heightTotal = 0
for (let i = 0; i < 10; i++) {
heightTotal += height * 2
height = height / 2
}
console.log('第5题', heightTotal - 100, height);
第六题:
判断一个数是否是回文数 如:121 1221 12321。
// 使用字符串的方式
let str = prompt("要判断的数是:")
let newStr = ''
for (let i = str.length-1; i >=0 ; i--) {
newStr += str[i]
}
if(newStr==str){
alert('true')
}else{
alert('false')
}
// 使用数字的方式
let num = +prompt("请输入你要判断的数:");
let reverseNum = 0; // 存储num的反转数字
while (reverseNum < num) {
// 不断地将num的个位数添加到reverseNum的末尾,并将num除以10以去掉其个位数
reverseNum = num % 10 + reverseNum * 10
num = parseInt(num / 10)
}
// 原数是奇数长度 使用 parseInt(reverseNum / 10) == num 进行判断
console.log('回文数', num == reverseNum || parseInt(reverseNum / 10) == num);