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^3 + 5^3 + 3^3 = 153)
水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。
// 打印所有的三位数
for (var i = 100; i < 1000; i++) {
// 获取i的百位 十位 个位的数字
// 获取百位数字
var bai = parseInt(i / 100);
// 获取十位数字
var shi = parseInt((i - bai * 100) / 10);
// 获取个位数字
var ge = i % 10;
// 判断i是否是水仙花数
if (bai * bai * bai + shi * shi * shi + ge * ge * ge == i) {
console.log(i);
}
}
11. 输入一个大于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 + "不是质数!");
}
}
12. 通过程序,在页面中输出如下图形:
/*
*
**
***
****
*****
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 />");
}
13. 打印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 />");
}