<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>無標題文檔</title>
<script type="text/javascript">
function fun(){
//取得參量位數
var valnum=parseInt(document.frm.input.value);
//求得符合參量位數的最大值和最小值
var highnum=Math.pow(10,valnum)-1;
var lownum=Math.pow(10,valnum-1);
//輸出隊列的組成部分
var output="***有個數:",res_str="";
//a為i分解為數組的下腳值,num為符合規則的水仙花的個數
var a=0,num=0;
//遍歷所有符合參量位數的數
for(i=lownum;i<=highnum;i++){
//res為水仙花數規則值,即n位的數的每位數的n次冪的和,預置為0
var res=0;
//分解出當前i的每位數並存如數組
var new_i=i.toString().split("");
for(a=0;a<=valnum-1;a++){
//求得水仙花數規則值
res=Math.pow(parseInt(new_i[a]),valnum)+res;
}
//判斷符合水仙花數的個數,如符合則將水仙花數並入輸出隊列
if(res==i){
num++;
res_str=res_str+"<br>"+res;
}
}
//輸出隊列
if(valnum<3){output="妳輸入了無效位數!";}
else{output=output+num+res_str;}
//輸出
document.getElementById("divnum").innerHTML=output;
}
function fun1(){
var valnum1=parseInt(document.frm1.input1.value);
var valnum2=parseInt(document.frm1.input2.value);
if(valnum1>valnum2) return alert("範圍錯誤");
if(valnum2<100) return alert("最大值位數小於3位,不存在水仙花數(依據水仙花規則)");
if(valnum1<100) valnum1=100;
var output="***有個數:",res_str="";
var a=0,num=0;
for(i=valnum1;i<=valnum2;i++){
var res=0;
//分解出當前i的每位數並存如數組
var new_i=i.toString().split("");
for(a=0;a<=new_i.length-1;a++){
//求得水仙花數規則值
res=Math.pow(parseInt(new_i[a]),new_i.length)+res;
}
//判斷符合水仙花數的個數,如符合則將水仙花數並入輸出隊列
if(res==i){
num++;
res_str=res_str+"<br>"+res;
}
}
output=output+num+res_str;
//輸出
document.getElementById("divnum").innerHTML=output;
}
</script>
</head>
<body><form name="frm">
<label>請輸入水仙花的位數(N>=3):</label><input type="text" name="input" value="">
<input value="運算" type="button" onclick="fun()" />
</form>
<br/>
<form name="frm1">
<label>請輸入求水仙花的範圍:</label><input type="text" name="input1" value="">-<input type="text" name="input2" value="">
<input value="運算" type="button" onclick="fun1()" />
</form>
<div id="divnum" style=" position:absolute;left:100px;width:200px;top:130px;"></div>
</body>
</html>