這個(gè)問(wèn)題主要出錯(cuò)在你的數(shù)學(xué)公式上,不知道你這個(gè)數(shù)學(xué)計(jì)算要表達(dá)什么?;旧夏泓c(diǎn)擊之后都是執(zhí)行到這句:
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比烏蘭網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式烏蘭網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋烏蘭地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
if?(a*a*a+b*b*b+c*c*c!==i)
{break;}
然后跳出循環(huán)。改了一下,這樣是能夠執(zhí)行的,不過(guò)你需要完善的計(jì)算公式
水仙花.html
!doctype?html
html?lang="zh"
head
meta?charset="utf-8"?/
title水仙花/title
/head
body
??form
請(qǐng)輸入下區(qū)間:input?name="text"?type="text"?name="lownum"?id="lownum"?/
請(qǐng)輸入上區(qū)間:input?name="text"?type="text"?name="highnum"?id="highnum"?/
input?id="btn"?name="btn"?type="button"?value="計(jì)算"?/
/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?+?"個(gè)數(shù):"?+?i);
}
}
}
}
(10,20)(20,30)如果只是判斷有交叉的到也簡(jiǎn)單
(10,20)-的大小 20-10=10
(20,30)大小30-20=10
(10,20)(20,30)大小30-10=20
現(xiàn)在10+10=20,ok,他們沒(méi)有交叉
驗(yàn)證:
(10,20)(19,30)
| |
10 11
(10+11)(30-10)
ok他們有交叉
其實(shí),我的想法很簡(jiǎn)單,既然是區(qū)間了,他就有個(gè)界限,你可以用他的界限來(lái)看看他是處在哪個(gè)區(qū)間,或者說(shuō)是那幾個(gè)區(qū)間之間。
判斷(x,y)有沒(méi)有跟其他的區(qū)間交叉,
如果x10,說(shuō)明他肯定沒(méi)有跟(10,20)交叉,也不會(huì)跟區(qū)間左界限10的區(qū)間交叉,
如果x10說(shuō)明他有可能跟(10,20)交叉,當(dāng)然還要看y的大小了,
總之,就是比較x,y 跟幾個(gè)區(qū)間界限的大小,這樣就能判定他跟幾個(gè)區(qū)間的交叉。
在這里,還是要好好的考慮一下怎樣比較下來(lái),比較的節(jié)省時(shí)間。
現(xiàn)在有兩個(gè)數(shù)組
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 那么就獎(jiǎng)勵(lì)30
如果收入大于450小于550,就獎(jiǎng)勵(lì)50
要實(shí)現(xiàn)的效果跟Excel中的VlookUP函數(shù)比較像,想問(wèn)下各位朋友,JS中如何有沒(méi)有類似的函數(shù),或者怎么寫最有效的判斷語(yǔ)句。
switch(a/10){
case 0:
case 1:
case 2: f("很差勁");break;
case 3
意思是:a/10的值是否等于0,1,2,是就執(zhí)行 f("很差勁");break;的意思是結(jié)束,不影響下面其他數(shù),如果你想0執(zhí)行一個(gè),1也執(zhí)行一個(gè)的話:
case 0:f("很差勁");break;//沒(méi)break,默認(rèn)是一組判斷
case 1: f("很差勁");break;
wei521su這種遍歷方法,
范圍在1到10000性能勉強(qiáng)可以接受, 范圍超過(guò)10000時(shí)耗時(shí)估計(jì)超過(guò)3分鐘,幾次提示“很慢建議停止腳步”;
從減少開辟變量和遍歷次數(shù)進(jìn)行優(yōu)化,發(fā)現(xiàn)還是很卡;
再大范圍需要改進(jìn)算法(eg:用哈希算法,將數(shù)據(jù)先吃到內(nèi)存),不然估計(jì)出不來(lái)了;
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改進(jìn)的方法:
在IE6測(cè)試了100000條,在首次加載很慢,以后調(diào)用相當(dāng)?shù)乜欤?/p>
IE8需要設(shè)置IE最大運(yùn)行腳本語(yǔ)句數(shù),調(diào)夠大,不然老是提示“是否停止腳本運(yùn)行”;
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總數(shù):"+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,程序默認(rèn)設(shè)置最小值=1");
nl = 1;
document.getElementById("nleft").value = nl;
}
if(nrlastArr[lastArr.length-1]){
alert("最大值:"+nr+"加載的最大值:"+lastArr[lastArr.length-1]+",程序默認(rèn)設(shè)置最大值=加載的最大值");
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總數(shù):"+arr.length;
}
/script
/head
bodyfont color="red"Hi! 質(zhì)數(shù)。br請(qǐng)輸入一個(gè)范圍:brbr
起始數(shù)字:input type="text" value="" id="nleft"/
終止數(shù)字:input type="text" value="" id="nright"/
input type="button" value="輸出" onclick="submit();"/
div id = 'printDiv'/div
/font/body
/html
你這個(gè)方法有點(diǎn)不對(duì)低效,給你寫個(gè)新的方法吧,隨便加減天數(shù)
//獲取時(shí)間方法
Date.prototype.Format?=?function?(fmt)?{
var?o?=?{
"M+":?this.getMonth()?+?1,?//月份
"d+":?this.getDate(),?//日
"h+":?this.getHours(),?//小時(shí)
"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;
}
//獲取當(dāng)前日期
var?starTime=?new?Date().Format("yyyy-MM-dd");//Format("輸入你想要的時(shí)間格式:yyyy-MM-dd,yyyyMMdd")
//結(jié)束時(shí)間
var?date?=?new?Date();//獲取當(dāng)前時(shí)間
date.setDate(date.getDate()+15);//設(shè)置天數(shù)?15?天
var?endTime?=?date.Format("yyyy-MM-dd");?//加完15天以后的時(shí)間
然后你就獲取 開始時(shí)間starTime和結(jié)束時(shí)間endTime了 ,結(jié)束時(shí)間可以隨便改了....
然后寫入你的DIV里就ok了
$('starDate').value=starTime;
$('endData').value=endTime;
不需要寫那么多 if啊 加0啊 之類的。
網(wǎng)頁(yè)標(biāo)題:javascript區(qū)間,js合并區(qū)間
轉(zhuǎn)載源于:http://sd-ha.com/article6/dsihcog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站收錄、網(wǎng)站設(shè)計(jì)公司、搜索引擎優(yōu)化、云服務(wù)器、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)