JavaScript for循环实际应用

for循环实际应用

1、计算100以内(含)所有奇数和偶数的和。

方法一:下列方法循环体的执行次数是100次。
1 var odd=0,even=0;      //定义两个存放最终的结果的变量
2 for(var i=1;i<=100;i++){ //for循环的条件
3   if(i%2){//如果i除以2的余数的1则执行下列代码
4     odd=odd+i;
5 }else{//否则执行下列代码
6  even=even+i;
7}
8}
console.log(“奇数和=+ odd);
console.log(“偶数和=+ even);

方法二:将方法一种循环体的执行次数降低。

var odd=0,even=0;
for(var i=1;i<100;i+=2){//for循环条件
	odd=odd+i;
	even=even+(i+1);
}
console.log("奇数和=" + odd);
console.log("偶数和=" + even);

输出所有的“水仙花数”

水仙花数是一个三位数,各个位的立方和等于它本身。
153 = 13+53+33

 var gw,sw,bw;//定义变量
for(var i=100;i<1000;i++){//条件i=100;i>1000;i+1;
	gw=i%10;//i除以10的余数等于gw
	sw=parseInt(i/10)%10;//(i除以10)的余数在取整的sw
	bw=parseInt(i/100);//(i除以100)后取整等于bw
	if(gw*gw*gw+sw*sw*sw+bw*bw*bw===i){//gw的立方加sw的立方加bw的立方精确等于i
		console.log(i);//输出i的值
	}
}

如何计算数a的n次方:Math.pow(a,n),数学类Math的pow()方法。

寻找下列数列的规律

1,1,2,3,5,8, 13 任意一个数的前两项和是它本身,被称为“斐波那契”数列

var f1=1,f2=1;//设置变量
var f;//设置未定义变量
var t=3;//设置变量团
document.write("<span>" + f1 + "</span>");
//在页面中显示f1
document.write("<span>" + f2 + "</span>");
//在页面中显示f2
while(t<=20){
	f=f1+f2;//f=F1+F2
	document.write("<span>" + f + "</span>");//在页面中显示f得值
	if(t%5===0) document.write("<br />");//在页面中显示f得值每行显示五个
	f1=f2;//当f=F1+F2时,f1将为下一步准备f1等于f2;
	f2=f;//当f=F1+F2时,f2将为下一步准备f2等于f;
	t++;//上述条件完成后t将加一进行下一步计算;
}

上述代码:翻译f=f1+f2等同于1+1=2;当f等于2是,f1,f2开始为下一次计算准备。此时f1将等于f2也就是f2将自身的值赋予f1,而f2得值将被f赋予,t++也在进行着下一次的计算准备,t=t+1。

质数问题

算法1:让n除以2、3、4、…、n/2,都不能把n整除就说明n是质数。
算法2:让n除以2、3、4、…、,都不能把n整除就说明n是质数。
算法2比算法1收敛速度更快,即算法2判断n是否为质数循环次数比算法1更少

$(function(){
	$(".btn").click(function(){   
		// 给.btn创建一个单击事件
		var int=$("input[name=int]").val();
		// 收集到input文本框输入的内容
		var n=parseInt(int);
		// 设置变量等于文本框输入的内容
		if(isNaN(n)){
			// 判断n是否为整数
			window.alert("请输入一个整数");
			// 如果输入的不是整数那么则弹框提醒
		}else{
			for(var i=2;i<=Math.sqrt(n);i++){
				// for循环条件变量等于二;
				// i<=跟号n;i+1;
				// if(n%i!==0);这个条件成立却,
				// 说明不了问题;
				if(n%i==0){
					break;
					// 如果n%i等于0,则执行break;
					//break为非正常出口,将执行,
					//else语句。
				}
				
			}
			if(i>Math.sqrt(n)){
				// 如果i>大于根号n则执行下列代码
				console.log(n + "是质数");
			}else{
				// 否则执行下列代码
				console.log(n + "不是质数");
			}
		}

	})
})

爱因斯坦阶梯

有一个阶梯。若每步上2阶,最后剩下1阶;
若每步上3阶,最后剩下2阶;若每步上5阶,
最后剩下4阶;若每步上6阶,最后剩下5阶;
若每步上7阶,最后一阶都不剩。问这个阶梯有多少阶。
将以上条件转化为一下js代码
ladder%2=1(阶梯数是奇数)
ladder%3
=2
ladder%5=4
ladder%6
=5
ladder%7===0(阶梯数是7的倍数)
根据以上条件提出解决方法

方法一

var ladder=7;
// 设置变量为7;
while(ladder%2!==1 || ladder%3!==2 || 
	ladder%5!==4 || ladder%6!=5 
	|| ladder%7!==0){
// 当ladder%2的余数不等于1或ladder%3的余数不等于2或
// ladder%5的余数不等于4或ladder%7的余数不等于0;
// 执行下列代码:
	ladder++;
}
// 当上述条件都不成立时执行下列代码
console.log(ladder);

方法二:

var ladder=7;
// 设置变量等于7
while(ladder%3!=2 || ladder%5!=4 || 
	ladder%6!=5){
	// 当ladder%3的余数不等于2或
	// ladder%5的余数不等于4或
	// ladder%6的余数不等于5;
	ladder+=14;
}
// 当所有的条件都不成立时执行下列代码
console.log(ladder);

Math.sqrt(n)在js 中表示根号n;
Math.pow(a,n)在js 中表示计算a的n 次方;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值