JS经典逻辑题------壹

JS经典逻辑题

想不到吧JavaScript也有逻辑运算题,其实js的逻辑运算题跟Java差不多,都是利用学过的知识进行数学运算,简单来说就是用程序实现古典数学运算。然后呢小编觉得有些还比较有意思经典,所以整理整理。

第一题

猴子摘下了若干个桃子,当即吃了一半,还不过瘾,有多吃了一个;第二天,又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前一天剩下的一半零一个,到了第十天的时候,发现只剩下一个桃子。
求:第一天共摘了多少个桃子

解决这题的思维不能用寻常思维来思考,要倒着思考,要从第十天倒着向后推
第10天,吃的只剩1个桃子了。第9天了,是第10天的2倍加1个,即3个。第8天了,是第9天的2倍加1个,即7个。依次向后推理,知道了思路写代码也就简单了

 //定义函数
		function monkey(){
			//定义总桃子数
			var sum = 1;
			//循环算出每天的桃子
			 for(var i = 10; i > 1 ; i--) {	
			 	sum =(sum + 1) * 2;
			 }
			 alert(sum);
		}
		//调用
		monkey();

第二题

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,
其各位数字立方和等于该数本身。例如:153是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。

经典题水仙花数,很有意思的数字,一共也没几个,所有的水仙花数只有三个:153,370,371,407。嗯~这就是要判断个、十、百位上的数的三次方等不等于本身吗,所以代码如下

function narcissus() {
			// 定义个,十,百位上的数
			var a,b,c;
			//循环
			for (var i = 100; i <= 999;i++) {
				a = i % 10;
				b = parseInt(i / 10) % 10;
				c = parseInt(i / 100);
				//判断是否为水仙花数
				if((a*a*a)+(b*b*b)+(c*c*c) == i){
				    document.write(i + '<br/>');
				}
			}
			
		}
		narcissus();

这里唯一的就是拿到个、十、百位上的数有点不好理解,个位:直接取模(%)10就好;十位:要先除(/)10拿到十位和百位上的数组成的两位数,再取模(%)10拿到想要的值。注意:要转成整数;百位:直接除(/)100,注意:要转成整数。下期再继续。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值