知识点回顾:for(){ }循环
1、找到离100最近的一个水仙花数。例:水仙花数 153=1*1*1+5*5*5+3*3*3
for (var num = 100; num >= 100; num++) {
var hundred = parseInt(num / 100);//声明变量hundred来装百位数
var ten = parseInt(num % 100 / 10);//声明变量ten来装十位数
var unit = num % 100 % 10;//声明变量unit来装个位数
if (num === (hundred * hundred * hundred) + (ten * ten * ten) + (unit * unit * unit)) {
console.log(num + '这个数是离100最近的一个水仙花数');
break;
}
}
2、用 * 画平行四边形。
for (var i = 1; i <= 4; i++) {
//画空格
for (var k = 1; k <= 4 - i; k++) {
document.write(' ')
}
//画星星
for (var j = 1; j <= 4; j++) {
document.write('*')
}
document.write('<br>')
}
3、用 * 画等腰三角形。
// i=1时 j=1
// i=2时 j=3
// i=3时 j=5
// i=4时 j=7
// 规律:j=2*i-1
for (var i = 1; i < 5; i++) {
for (var m = i; m <= 4; m++) {
document.write(" ")
}
for (var j = 1; j <= (2 * i - 1); j++) {
document.write("*");
}
document.write("<br>")
}
4、序列:1,2,3,5,8,13...。找出第20个数是多少?得出前20个数之和是多少?
var sum = 3;
var num1 = 1;
var num2 = 2;
for(var i=3;i<=20;i++){ //18次
var x = num1 + num2;
sum = sum + x;
num1 = num2;
num2 = x;
}
console.log('前20个数之和是:',sum);
5、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
var sum = 2;
var fenzi = 2;
var fenmu = 1;
for (var i = 2; i <= 20; i++) {
var num = fenmu;
fenmu = fenzi;
fenzi = fenzi + num;
sum = sum + fenzi / fenmu;
}
console.log('这个数列的前20项之和 =', sum);
6、计算饭钱:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了500元,每个男人各花30元,每个女人各花20元,每个小孩各花10元,问男人、女人和小孩各有几人?
var man;
var woman;
var child;
for(woman=1;woman<=30;woman++){
for(man=1;man<=30-woman;man++){
child=30-woman-man;
if(man+woman+child==30 && 30*man+20*woman+10*child==500){
document.write("男人有"+man+"  ","女人有"+woman+"  ","小孩有"+child);
document.write("<br>")
}
}
7、找出 2000年到2500年之间哪些是闰年,并且计算一共有多少个?
var num = 0;
for (var i = 2000; i <= 2500; i++) {
//判断是不是闰年
if ((i % 4 === 0 && i % 100 !== 0) || i % 400 === 0) {
console.log(i + '年是闰年');
num++;
}
}
console.log('总共有:', num);
8、将一个正整数分解质因数。例如:输入90,分别打印出90的质因数 2 3 3 5;输入60分别打印出 2 2 3 5 。
var num = Number(prompt('请输入一个数'));
for (var i = 2; i <= num; i++) {
if (num % i === 0) {
console.log('i=', i);
num = num / i;
i--;
}
}
9、画九九乘法表
for (var i = 1; i <= 9; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + '*' + i + '=' + j * i + ' ')
}
document.write('<br>')
}
10、有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;
按从1至7报数,最末一个士兵报的数为4;
最后再按从1至11报数,最末一个士兵报的数为10。编程求韩信至少有多少兵?
for (var i = 1; i > 0; i++) {
if ((i % 5 === 1) && (i % 6 === 5) && (i % 7 === 4) && (i % 11 === 10)) {
console.log('至少有' + i + '个兵');
break;
}
}
11、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
var peach = 1
for (var i = 9; i >= 1; i--) {
peach = (peach + 1) * 2
}
console.log('第一天共摘了:', peach);