渡一javascript学习笔记《条件语句补充,初始引用值》

学习地址:https://ke.qq.com/user/index/index.html#/plan/cid=417875&term_id=100498562
代码为渡一教育,若有问题可联系删除。谢谢!

这几个题目很有恶心,耐着性子看完!看懂了,说明你悟性很高,能独立写出来,说明到家了!
小编只能独立写出第四题,逻辑性特强。其它几道题目绕绕的!

如果题目恶心到你,请关注一下!谢谢!秃顶的路上与您共勉!

今天为条件语句补充内容,主要以习题为主,以下为6个习题:
在这里插入图片描述在这里插入图片描述
解题顺序为(第一题,第二题,第五题,第三题,第六题)

第一题:计算2的n次幂,n可输入,n为自然数。

解题思路:
①定义一个n
②题目要求“n可输入”表达式:var n = parseInt(window.prompt(‘请输入自然数’));
③管它三七二十一,先套一个for循环

for(var i = 0; i < n 1;i ++){
}

目的是输入一个n,从0开始,一直到第n个数,分析逻辑
n = 1 结果2
n = 2 结果22
n = 3 结果2
22
可以看出来初始值是由2开始
所以先定义一个变量作为初始值:var mul = 2;
假设n = 1 时,结果为2,那么还需要定义一个变量储存结果值:var sum = mul
n( 2*)
假设n = 2 时,结果为4,那么还需要定义一个变量储存结果值:var sum = muln( 22)
假设n = 3 时,结果为8,那么还需要定义一个变量储存结果值:var sum = muln( 22*2)
可以看出每一次多会比上一次多乘以一个2,所以需要保存上一次赋值,那么就需要用符合( *= )

var n = parseInt(window.prompt('input'));
var mul = 2;
for(var i = 0; i < n; i ++){
	mul*=2;
}
document.write(mul)

这样打印出的结果有些误差:
当n = 2 结果为8
当n = 3 结果为16
则表示多乘了一圈,所以n要减1
在这里插入图片描述

var n = parseInt(window.prompt('input'));
var mul = 2;
for(var i = 0; i < n-1; i ++){
	mul*=2;
}
document.write(mul)

方法二:
在这里插入图片描述
第二题:计算n的阶乘:
2. 计算n的阶乘
// 3! = 321
// 4! = 4321
// 5! = 5
432*1
var mul = 1;
for(var i = 1, i <= n, i ++){
document.write(i);
// 这样课可以打印出1.2.3…n
// 要把每次i的值相互相乘
mul *= i;
}

var n = parseInt(window.prompt('input'));
var mul = 1;
for(var i = 1; i <= n; i ++){
	document.write(i);
	document.write("<br>");
	mul *= i;
}document.write(mul);

第五题: 输出三个数,显示出最大的。

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);
	}
}

之前小编也有这样写过,不过会有bug,可以看看:

var a = parseInt(window.prompt('input'));
var b = parseInt(window.prompt('input'));
var c = parseInt(window.prompt('input'));

if(a > b && a > c){
	document.write(a);
}else if(a > b && a < c){
	document.write(c);
}else if(a < b && b > c){
	document.write(b);
}else if(a < b && b < c){
	document.write(c);
}

这样写a=b或a=c或c=b是会出现bug!!!

第四题:编写一个程序,输入一个三位数的正整数,
输出时反向输出如:456,输出 654

理清思路:
在这里插入图片描述然后把上面内容一步一步写出来:

var a = parseInt(window.prompt('请输入一个三位数正整数'));
// 456 ===> 654
// 456%10 ==>得45余6(6被取出来)
var b = a%10;

456 - 6 ==>450 
var c = a - b;

// 450%100==>得4余50
var d = c%100;

// 50/10 ==>5(5被取出来了)
var e = d/10

// 450-50 ==>400
var f = c - d;

// 400/100 ==>4(4被取出来了)
var g = f/100;
// 然后再把6,5,4组合在一起
var h = ""+ b + e + g;
document.write(h);

第三题:著名的斐波那契数列额数列
1 1 2 3 5 8 13 21输出第n项。
分析:
// 1 1 2 3 5 8 13 21
// f s t
// 1 1 2 3 5 8 13 21
// f s t

// 求第6个数的值
// 8 = 3 + 5
// n = (n - 1) + (n + 1);且n>2
代码:有些难理解,多看几遍吧!!!

var n = parseInt(window.prompt('请输入正整数'));
var first = 1,
	second = 1,
	third;
for(var i = 0;i < n-2; i ++){
	third = first + second;
	first = second;
	second = third;
}
document.write(third);

第六题:打印出100以内的质数

①有个判断质数的公式
②每一个数都要判断一次
代码:有些难理解,多看几遍吧!!!


var count = 0;
for(var i = 2; i < 100; i ++){
	// 看看每个i是否为质数
	for(var j = 1; j <= Math.sqrt(i); j ++){
		if(i%j == 0){
			count ++;
		}
	}
	if(count == 1){
		document.write(i + " ");
	}
	count = 0;
}
发布了8 篇原创文章 · 获赞 8 · 访问量 5955

猜你喜欢

转载自blog.csdn.net/qq_44152977/article/details/104106502