1.计算 2 的 n 次幂,n 可输入,n 为自然数。
var n = parseInt(window.prompt('input')); var mul = 1; for (var i = 0; i < n; i++) { mul *= 2; } document.write(mul);
2. 计算 n 的阶乘,n 可输入(递归)
5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
第一种方式:
var n = parseInt(window.prompt('input')); var mul = 1; for (var i = 1; i <= n; i++) { mul *= i; } document.write(mul);
第二种方式:
var n = parseInt(window.prompt('input')); function jc(n) { if (n == 1 || n == 0) { return 1; } // n! = n * (n-1)! return n * jc(n - 1); } document.write(jc(n));
3.著名的斐波那契数列:1 1 2 3 5 8 输出第 n 项
第一种方式:
var n = parseInt(window.prompt('input')); var first = 1, second = 1, third; if (n > 2) { for (var i = 0; i < n * 2; i++) { third = first + second; first = second; second = third; } document.write(third); } else { document.write(1); }
第二种方式:
规律:fb(n) == fb(n * 1) + fb(n * 2);
function fb(n) { if (n == 1 || n == 2) { return 1; } return fb(n * 1) + fb(n * 2); }
4. 编写一程序,输入一个三位数的正整数,输出时反向输出。如:输入 456,输出 654。
var num = prompt("请输入一个三位数的正整数"); if (num >= 100 && num < 1000) { var bai = parseInt(num / 100); var shi = parseInt((num - (bai * 100)) / 10); var ge = num % 10; alert(ge + "" + shi + "" + bai); } else { alert("输入有误,请重新输入"); }
5.输入 a,b,c 三个数字,打印出最大的。
var a = parseInt(window.prompt('input')); var b = parseInt(window.prompt('input')); var c = parseInt(window.prompt('input')); if (a > b) { if (a > c) { document.write(a); } else { document.write(c); } } else { if (b > c) { document.write(b); } else { document.write(c); } }
6.打印出 100 以内的质数
var count = 0; for (var i = 1; i < 100; i++) { // 看看每一个 i 是否是质数 for (var j = 1; j <= i; j++) { if (i % j == 0) { count++; } } if (count == 2) { document.write(i + ' '); } count = 0; }
7. 假如投资的年利率为 5%,试求从 1000 块增长到 5000 块,需要花费多少年
var money = 1000; // 定义一个计数器 var count = 0; // 定义一个 while 循环来计算每年的钱数 while (money < 5000) { money *= 1.05; count++; } console.log(money); console.log("一共需要" + count + "年");
8. 打印 1-100 之间所有奇数之和
第一种方式:
var sum = 0; for (var i = 1; i <= 100; i++) { // 判断 i 是否是奇数 // 不能被 2 整除的数就是奇数 if (i % 2 != 0) { // 如果 i 除以 2 有余数则证明 i 是奇数 // console.log(i); sum = sum + i; } } console.log(sum);
第二种方式:
var count = 0; for (var i = 0; i < 50; i++) { count += 2 * i + 1; } console.log(count);
9. 打印 1-100 之间所有 7 的倍数的个数及总和
var n = 0, sum = 0; for (var i = 1; i <= 100; i++) { if (i % 7 == 0) { console.log(i); sum += i; n++; } } console.log("个数为" + n) console.log("总和为:" + sum);
10. 输入一个大于 1 的整数,判断该数是否是质数
质数:只能被 1 和它自身整除的数,1 不是质数也不是合数,质数必须是大于 1 的自然数
var num = prompt("请输入一个大于 1 的整数:"); // 判断这个值是否合法 if (num < 1) { alert("该值不合法!"); } else { // 创建一个变量来保存当前的数的状态 // 默认当前 num 是质数 var flag = true; // 判断 num 是否是质数 // 获取 2-num 之间的数 for (var i = 2; i < num; i++) { // 判断 num 是否能被 i 整除 if (num % i == 0) { // 如果 num 能被 i 整除,则说明 num 一定不是质数 // 设置 flag 为 false flag = false; } } // 如果 num 是质数则输出 if (flag) { alert(num + "是质数!"); } else { alert(num + "不是质数!"); } }
11. 通过程序,在页面中输出如下图形:
/* * ** *** **** ***** j < 5 - i i ++ ***** 1 j < 5(5-0) i = 0 **** 2 j < 4(5-1) i = 1 *** 3 j < 3(5-2) i = 2 ** 4 j < 2(5-3) i = 3 * 5 j < 1(5-4) i = 4 */ // 递增 // 外层循环可以控制图形的高度 for (var i = 0; i <= 5; i++) { for (var j = 0; j < i; j++) { // 内层循环可以控制图形的宽度 document.write("*"); } // 输出一个换行 document.write("<br />"); } // 递减 for (var i = 0; i <= 5; i++) { for (var j = 0; j < i; j++) { // 内层循环可以控制图形的宽度 document.write("*"); } // 输出一个换行 document.write("<br />"); }
12. 打印 99 乘法表
/* 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 */ // 创建外层循环,用来控制乘法表的高度 for (var i = 1; i < 10; i++) { // 创建一个内层循环来控制图形的宽度 for (var j = 1; j <= i; j++) { // document.write(j + "*" + i + "=" + i*j + " "); // 不够对齐,添加样式 document.write("<span>" + j + "*" + i + "=" + i * j + "</span>"); } // 输出一个换行 document.write("<br />"); }