javascript区间,js合并区间

输入区间搜索水仙花数用javascript

这个问题主要出错在你的数学公式上,不知道你这个数学计算要表达什么。基本上你点击之后都是执行到这句:

成都创新互联-专业网站定制、快速模板网站建设、高性价比乌兰网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式乌兰网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖乌兰地区。费用合理售后完善,10余年实体公司更值得信赖。

if (a*a*a+b*b*b+c*c*c!==i)

{break;}

然后跳出循环。改了一下,这样是能够执行的,不过你需要完善的计算公式

水仙花.html

!doctype html

html lang="zh"

head

meta charset="utf-8" /

title水仙花/title

/head

body

  form

请输入下区间:input name="text" type="text" name="lownum" id="lownum" /

请输入上区间:input name="text" type="text" name="highnum" id="highnum" /

input id="btn" name="btn" type="button" value="计算" /

/form

script src="shuixianhua.js"/script

/body

/html

shuixianhua.js

window.onload = shuixianhua;

function shuixianhua()

{

var i,a,b,c,n;    //不知道你的变量 n 有什么作用

var low_value = parseInt(document.getElementById("lownum").value);

var high_value = parseInt(document.getElementById("highnum").value);

var btn_node = document.getElementById("btn");

var result_node = document.getElementById("btn");

for(i = low_value; i = high_value; i++)

{

a = Math.round(i/100);      //或者 Math.floor()   Math.ceil()

b = Math.round(i%100/10);  //或者 Math.floor()   Math.ceil()

c = i%10;

if (a*a*a+b*b*b+c*c*c!==i)

{break;}

else 

{

btn_node.onclick = function()

{

document.write("找到第" + n + "个数:" + i);

}

}

}

}

javascript 如何判断几个数据区间是否有重叠和交叉 csdn

(10,20)(20,30)如果只是判断有交叉的到也简单

(10,20)-的大小 20-10=10

(20,30)大小30-20=10

(10,20)(20,30)大小30-10=20

现在10+10=20,ok,他们没有交叉

验证:

(10,20)(19,30)

| |

10 11

(10+11)(30-10)

ok他们有交叉

其实,我的想法很简单,既然是区间了,他就有个界限,你可以用他的界限来看看他是处在哪个区间,或者说是那几个区间之间。

判断(x,y)有没有跟其他的区间交叉,

如果x10,说明他肯定没有跟(10,20)交叉,也不会跟区间左界限10的区间交叉,

如果x10说明他有可能跟(10,20)交叉,当然还要看y的大小了,

总之,就是比较x,y 跟几个区间界限的大小,这样就能判定他跟几个区间的交叉。

在这里,还是要好好的考虑一下怎样比较下来,比较的节省时间。

JS 如何判断一个数字在某一个区间内

现在有两个数组

var revenue = new Array([350],[450],[550],[650],[850],[1000],[1100],[1250],[1500]);

var reward = new Array([30],[40],[50],[100],[200],[240],[300],[400]);

如果收入大于350 小于 450 那么就奖励30

如果收入大于450小于550,就奖励50

要实现的效果跟Excel中的VlookUP函数比较像,想问下各位朋友,JS中如何有没有类似的函数,或者怎么写最有效的判断语句。

javascript 中如何让 switch case 选择一个区间

switch(a/10){

case 0:

case 1:

case 2: f("很差劲");break;

case 3

意思是:a/10的值是否等于0,1,2,是就执行 f("很差劲");break;的意思是结束,不影响下面其他数,如果你想0执行一个,1也执行一个的话:

case 0:f("很差劲");break;//没break,默认是一组判断

case 1: f("很差劲");break;

javascript 怎么输出指定输入范围内的质数

wei521su这种遍历方法,

范围在1到10000性能勉强可以接受, 范围超过10000时耗时估计超过3分钟,几次提示“很慢建议停止脚步”;

从减少开辟变量和遍历次数进行优化,发现还是很卡;

再大范围需要改进算法(eg:用哈希算法,将数据先吃到内存),不然估计出不来了;

html

head

script type="text/javascript"

function getzhishu(num1,num2){

var sum = 0,j,indexMax;

if(num12 num2===2){

sum++;

document.write(2+"|");

}else if(num12 num2=3){

sum+=2;

document.write(2+"|");

document.write(3+"|");

}else if(num2=3 num1=3){

sum++;

document.write(3+"|");

}

for(var i=5;inum2;i++){

indexMax = parseInt(i/2);

for(j=2;jindexMax;j++){

if(i%j==0){

break;

}

}

if(indexMax == j){

sum++;

document.write(i+"|");

}

}

document.write("br"+sum);

}

getzhishu(1,10000);

/script

/head

bodyfont color="red"Hi!/font/body

/html

使用了一层hash改进的方法:

在IE6测试了100000条,在首次加载很慢,以后调用相当地快;

IE8需要设置IE最大运行脚本语句数,调够大,不然老是提示“是否停止脚本运行”;

html

head

script type="text/javascript"

var HashPool = function(size){

this.size = size;

this.pool = new Array();

this.loadPool(100000);

}

HashPool.prototype.loadPool = function(nr){

var sum=5,j,indexMax;

var arr = new Array();

this.pool.push(arr);

arr.push(2);

arr.push(3);

for(var i=5;i=nr;i++){

sum++;

if(sumthis.size){

sum=1;

arr = new Array();

this.pool.push(arr);

}

indexMax = parseInt(i/2);

for(j=2;jindexMax;j++){

if(i%j==0){

break;

}

}

if(indexMax == j){

arr.push(i);

}

}

}

HashPool.prototype.writeAll = function(){

var i,j;

for(i = 0; ithis.pool.length;i++){

for(j=0; jthis.pool[i].length;j++){

document.write(this.pool[i][j]+"\t");

}

}

}

HashPool.prototype.write = function(nl,nr){

var arr = this.getZhiShu(nl,nr);

for(var i = 0; iarr.length;i++){

document.write(arr[i]+"\t");

}

document.write("br总数:"+arr.length);

}

HashPool.sliceLeft = function(arr,value){

/* //遍历方式

if(arr[arr.length-1]value){

return new Array();

}

for(var i=0;iarr.length;i++){

if(value=arr[i]){

return arr.slice(i);

}

}

return [];*/

// 二分法

var index = HashPool.getIndex(arr,value);

if(index=0){

if(arr[index] === value || index === 0){

return arr.slice(index);

}

return arr.slice(index+1);

}

return [];

}

HashPool.sliceRight = function(arr,value){

/* //遍历方式

if(arr[arr.length-1]value){

return arr;

}

for(var i=0;iarr.length;i++){

if(value===arr[i]){

return arr.slice(0,i+1);

}

if(valuearr[i]){

return arr.slice(0,i);

}

}

return [];*/

// 二分法

var index = HashPool.getIndex(arr,value);

if(index0){

return arr.slice(0,index+1);

}

return [];

}

HashPool.getIndex = function(arr,v){

if(arr[arr.length-1]v){

return arr.length-1;

}else if(arr[0]v){

return 0;

}

var l=0,r=arr.length-1,il;

while(l=r){

il=parseInt((r+l)/2);

if(arr[il]v arr[il+1]v){

return il;

}else if(arr[il]===v){

return il;

}else if(arr[il]v){

r = il - 1;

}else{

l = il + 1;

}

}

return -1;

}

HashPool.prototype.getZhiShu = function(nl,nr){

var i,j,indexMax,lIndex,rIndex;

var resultArr = new Array(),lastArr = this.pool[this.pool.length-1];

if(nr - nl 3*this.size){

if(nl1){

alert("最小值:"+nl+"1,程序默认设置最小值=1");

nl = 1;

document.getElementById("nleft").value = nl;

}

if(nrlastArr[lastArr.length-1]){

alert("最大值:"+nr+"加载的最大值:"+lastArr[lastArr.length-1]+",程序默认设置最大值=加载的最大值");

nr = lastArr[lastArr.length-1];

document.getElementById("nright").value = nr;

}

lIndex = parseInt(nl/this.size);

rIndex = parseInt(nr/this.size);

resultArr = resultArr.concat(HashPool.sliceLeft(this.pool[lIndex],nl));

for(i = lIndex+1;irIndex;i++){

resultArr = resultArr.concat(this.pool[i]);

}

resultArr = resultArr.concat(HashPool.sliceRight(this.pool[rIndex],nr));

}else{

if(nl2 nr===2){

resultArr.push(2);

}else if(nl2 nr=3){

resultArr.push(2);

resultArr.push(3);

}else if(nr=3 nl=3){

resultArr.push(3);

}

for(i=5;i=nr;i++){

indexMax = parseInt(i/2);

for(j=2;jindexMax;j++){

if(i%j==0){

break;

}

}

if(indexMax == j){

resultArr.push(i);

}

}

}

return resultArr;

}

var hashPool = new HashPool(500);

//hashPool.writeAll();

//hashPool.write(1,3000);

function submit(){

var nl = parseInt(document.getElementById("nleft").value);

var nr = parseInt(document.getElementById("nright").value);

var arr = hashPool.getZhiShu(nl,nr);

document.getElementById("printDiv").innerText = arr.join("|") +"\n总数:"+arr.length;

}

/script

/head

bodyfont color="red"Hi! 质数。br请输入一个范围:brbr

起始数字:input type="text" value="" id="nleft"/

终止数字:input type="text" value="" id="nright"/

input type="button" value="输出" onclick="submit();"/

div id = 'printDiv'/div

/font/body

/html

JS显示时间问题,一打开页面显示的时间区间是30天的,怎么修改成15天的

你这个方法有点不对低效,给你写个新的方法吧,随便加减天数

//获取时间方法

Date.prototype.Format = function (fmt) {

var o = {

"M+": this.getMonth() + 1, //月份

"d+": this.getDate(), //日

"h+": this.getHours(), //小时

"m+": this.getMinutes(), //分

"s+": this.getSeconds(), //秒

"q+": Math.floor((this.getMonth() + 3) / 3), //季度

"S": this.getMilliseconds() //毫秒

};

if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));

for (var k in o)

if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));

return fmt;

}

//获取当前日期

var starTime= new Date().Format("yyyy-MM-dd");//Format("输入你想要的时间格式:yyyy-MM-dd,yyyyMMdd")

//结束时间

var date = new Date();//获取当前时间

date.setDate(date.getDate()+15);//设置天数 15 天

var endTime = date.Format("yyyy-MM-dd"); //加完15天以后的时间

然后你就获取 开始时间starTime和结束时间endTime了 ,结束时间可以随便改了....

然后写入你的DIV里就ok了

$('starDate').value=starTime;

$('endData').value=endTime;

不需要写那么多 if啊 加0啊 之类的。


本文题目:javascript区间,js合并区间
转载来于:http://hbruida.cn/article/dsihcog.html