网站地图 | RSS订阅 凌陈亮博客 - 专业上海SEO上海SEO优化,分享网站优化知识,同时提供上海SEO服务。
你的位置:首页 » 算法
前端脚本

JS求N个数字的最大公约数和最小公倍数

JS求N个数字的最大公约数和最小公倍数
<script language="javascript">
//函数功能:求N个数字的最大公约数和最小公倍数
//参数:数字集合(间隔符使用英文逗号, 如:16,24)
//调用方式:参照下方求两位数字和三位数字的最大公约数和最小公倍数案例
//制作:凌陈亮(QQ:57404811)
function getGCDLCM(str){
	var arr=eval("[" + str + "]");
	var max=Math.max.apply(null, arr);
	var min=Math.min.apply(null, arr);
	var GCDLCM=new Object(); //函数返回对象
	GCDLCM.str=str; //输入的数字集合
	GCDLCM.num=arr.length; //数字总个数
	var i,j,ifstr="";
	for(j=0;j<arr.length;j++){
		ifstr+=arr[j] + "<1";
		if(j<arr.length-1) ifstr+="||"
	}
	if(eval(ifstr)){
		GCDLCM.GCD=-1; //最大公约数
		GCDLCM.LCM=-1; //最小公倍数
		return GCDLCM;
	}
	//求最大公约数
	for(i=min;i>0;i--){
		ifstr="";
		for(j=0;j<arr.length;j++){
			ifstr+=arr[j] + "%" + i + "==0";
			if(j<arr.length-1) ifstr+="&&"
		}
		if(eval(ifstr)){
			GCDLCM.GCD=i; //最大公约数
			break;
		}
	}
	//求最小公倍数
	var n=1;
	for(j=0;j<arr.length;j++){ n=n*arr[j]; }
	for(i=max;i<=n;i++){
		ifstr="";
		for(j=0;j<arr.length;j++){
			ifstr+=i + "%" + arr[j] + "==0";
			if(j<arr.length-1) ifstr+="&&"
		}
		if(eval(ifstr)){
			GCDLCM.LCM=i; //最小公倍数
			break;
		}
	}
	return GCDLCM;
}
//例1:求两个数的最大公约数和最小公倍数
var result=getGCDLCM("16,24");
window.document.write("<p>您要查最大公约数和最小公倍数的数字为:" + result.str + "</p>");
window.document.write("<p>数字个数为:" + result.num + " 个</p>");
window.document.write("<p>最大公约数为:" + result.GCD + "</p>");
window.document.write("<p>最小公倍数为:" + result.LCM + "</p>");
//例2:求三个数的最大公约数和最小公倍数
var result=getGCDLCM("16,24,96");
window.document.write("<p>您要查最大公约数和最小公倍数的数字为:" + result.str + "</p>");
window.document.write("<p>数字个数为:" + result.num + " 个</p>");
window.document.write("<p>最大公约数为:" + result.GCD + "</p>");
window.document.write("<p>最小公倍数为:" + result.LCM + "</p>");
</script>


发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS输出1到100间的奇数和偶数

JS输出1到100间的奇数和偶数
<script type="text/javascript">
jishu();
function jishu(){ //求奇数
	var str="",n=0;
    for(var i=1; i<=100; i++){
		if(i%2!=0){
			str=str + i + ","; //将奇数连到一个字符串中
			n++; //奇数个数+1
		}
    }
    window.document.write("<p>1-100间的奇数(单数)总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的奇数(单数)分别为:" + str.substr(0,str.length-1) +"</p>");
}
oushu();
function oushu(){ //求偶数
	var str="",n=0;
    for(var i=1; i<=100; i++){
		if(i%2==0){
			str=str + i + ","; //将偶数连到一个字符串中
			n++; //偶数个数+1
		}
    }
    window.document.write("<p>1-100间的偶数(双数)总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的偶数(双数)分别为:" + str.substr(0,str.length-1) +"</p>");
}
jioushu(100); //输出1到100间的奇偶数
function jioushu(n){  //求偶奇数
	var str1="",str2="",n1=0,n2=0;
    for(var i=1; i<=n; i++){
		if(i%2!=0){
			str1=str1 + i + ","; //将奇数连到一个字符串中
			n1++; //奇数个数+1
		}else{
			str2=str2 + i + ","; //将偶数连到一个字符串中
			n2++; //偶数个数+1
		}
    }
    window.document.write("<p>1-100间的奇数(单数)总数为:" + n1 + " 个</p>");
    window.document.write("<p>1-100间的奇数(单数)分别为:" + str1.substr(0,str1.length-1) +"</p>");
    window.document.write("<p>1-100间的偶数(双数)总数为:" + n2 + " 个</p>");
    window.document.write("<p>1-100间的偶数(双数)分别为:" + str2.substr(0,str2.length-1) +"</p>");
}
</script>

发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS输出1到100间的所有合数

JS输出1到100间的所有合数
<script type="text/javascript">
heshu();
function heshu(){
    var str="",n=0;
    for(var i=1; i<=100; i++){
        var m=0; //非合数
        for(var j=2; j<i; j++){
            if(i%j==0){
                m=1; //合数
                break;
            }
        }
        if(m==1 && i!=2){
            str=str + i + ",";
            n++; //合数个数+1
        }
    }
    window.document.write("<p>1-100间的合数总数为:" + n + " 个</p>");
    window.document.write("<p>1-100间的合数分别为:" + str.substr(0,str.length-1) +"</p>");
}
</script>


发布时间:2016年9月18日 | 评论:0 | 浏览: | 标签:Javascript  算法  

前端脚本

JS实现组合算法总结

JS实现组合算法总结

算法一:循环,一组组合需要几个元素就用几个for(比较笨拙的方法)

示例中是从6个元素中取4个元素进行组合,并显示组合种数和组合列表。

<script type="text/javascript">  
var str="01,02,03,04,05,06";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len-3;i++){
	for(var j=i+1;j<len-2;j++){
		for(var k=j+1;k<len-1;k++){
			for(var l=k+1;l<len;l++){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
			}
		}
	}
}
var len2=newArray.length;
document.write("组合总个数为:" + len2 + "<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:可自己设置元素库以及取N个元素进行组合。

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS从M个元素中取N个排列算法(可重复元素)

JS从M个元素中取N个排列算法(可重复元素)

JS排列算法(可重复元素)示例:从4个元素中取3个进行排列,并显示共有多少种排列方式

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		for(var k=0;k<len;k++){
			newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]);
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<newArray.length;i++){
	document.write(newArray[i] + "<br />");
}
</script>

以上代码采用FOR循环方式,一组排列需要几个元素就用几个for

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  

前端脚本

JS全排列的7种算法总结(不重复元素)

JS全排列的7种算法总结(不重复元素)

全排列是一种时间复杂度为:O(n!)的算法。所有算法均使用JavaScript编写,可直接运行。

算法一:循环,一组排列需要几个元素就用几个for(比较笨拙的方法)

<script type="text/javascript">  
var str="01,02,03,04";
var strArray=str.split(",");
var len=strArray.length;
var newArray=new Array();
for(var i=0;i<len;i++){
	for(var j=0;j<len;j++){
		if(j!=i){
		for(var k=0;k<len;k++){
			if(k!=i && k!=j){
			for(var l=0;l<len;l++){
				if(l!=i && l!=j && l!=k){
				newArray.push(strArray[i]+" "+strArray[j]+" "+strArray[k]+" "+strArray[l]);
				}
			}
			}
		}
		}
	}
}
var len2=newArray.length;
document.write("排列方式种类有:" + len2 + " 种<br />");
for(i=0;i<len2;i++){
	document.write(newArray[i] + "<br />");
}
</script>

算法二:交换算法(递归)

发布时间:2016年8月31日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS排列组合  JS递归函数  

前端脚本

JS输出斐波那契数列

JS输出斐波那契数列

示例一:JS输出前20个斐波那契数列(使用递归算法)

<script type="text/javascript">  
function f(x){return x<1?0:(x<3?1:f(x-1)+f(x-2));}
for(var i=0;i<20;i++){
	document.write(f(i) + ", ");
}
</script>

输出结果:

发布时间:2016年8月30日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS递归函数  

前端脚本

JS实现n~阶加1+2+3+...+n的和

JS实现n~阶加1+2+3+...+n的和

n~阶加1+2+3+...+n 的和(使用递归算法)

发布时间:2016年8月30日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS递归函数  

前端脚本

JS实现求阶乘n!函数

JS实现求阶乘n!函数

求阶乘n! 即,1×2×3×4×5×······×n(使用递归算法)

代码:n为自定义函数名称

function n(i){return i<2?1:i*n(i-1);}

另一种写法:

发布时间:2016年8月30日 | 评论:0 | 浏览: | 标签:Javascript  JS教程  算法  JS递归函数  

前端脚本

JS输出1到100间的所有质数

JS输出1到100间的所有质数
<script type="text/javascript">
zhishu();
function zhishu(){
	var str="",n=0;
	for(var i=1; i<=100; i++){
		var m=0; //质数
		for(var j=2; j<i; j++){
			if(i%j==0){
				m=1; //非质数
				break;
			}
		}
		if(m==0 && i!=2){
			str=str + i + ",";
			n++; //质数个数+1
		}
	}
	window.document.write("<p>1-100间的质数总数为:" + n + " 个</p>");
	window.document.write("<p>1-100间的质数分别为:" + str.substr(0,str.length-1) +"</p>");
}
</script>


发布时间:2016年2月18日 | 评论:1 | 浏览: | 标签:Javascript  算法  质数  

ASP程序

ASP输出1到100间的所有质数

ASP输出1到100间的所有质数
<%
call zhishu()
function zhishu()
	dim i,j,m,n,str
	n=0 '计算质数个数
	for i=1 to 100
		m=0 '质数
		for j=2 to i-1
			if i mod j=0 then
				m=1 '非质数
				exit for
			end if
		next
		if m=0 and i<>2 then
			str=str & i & ","
			n=n+1 '质数个数+1
		end if
	next
	response.write("<p>1-100间的质数总数为:" & n & " 个</p>")
	response.write("<p>1-100间的质数分别为:" & left(str,len(str)-1) & "</p>")
end function
%>


发布时间:2016年2月18日 | 评论:0 | 浏览: | 标签:算法  质数  

ASP程序

ASP实现数组中的数字从小到大和从大到小排序

ASP实现数组中的数字从小到大和从大到小排序

ASP使用选择排序、快速排序、冒泡排序、插入排序四种排序法写的ASP自定义排序函数。
可用一个参数来控制返回数组是从小到大排序还是从大到小排序。详细ASP代码如下:

发布时间:2016年2月15日 | 评论:0 | 浏览: | 标签:算法  数组  排序  

前端脚本

JS实现数组中的数字从小到大和从大到小排序

JS实现数组中的数字从小到大和从大到小排序

一维数组数字从小到大和从大到小排序:
 <script type="text/javascript">
 var arr=[15,2,433,10000,8888];
 document.write("<p>原数组为:" + arr + "</p>");
 document.write("<p>从小到大排序:" + arr.sort(function(a,b){return a-b}) + "</p>");
 document.write("<p>从大到小排序:" + (arr.sort(function(a,b){return a-b})).reverse() + "</p>");
 document.write("<p>从大到小排序:" + (arr.sort(function(a,b){return b-a})) + "</p>");
 </script>

发布时间:2016年2月1日 | 评论:0 | 浏览: | 标签:Javascript  算法  数组  排序  

ASP程序

ASP求数组中的最大值和最小值

ASP求数组中的最大值和最小值

ASP求一个数组中数字或数值的最大值和最小值,自定义函数如下:

<%
function max(x)
	dim arr,i
	arr=split(x,",") '拆分数组
	max=cdbl(arr(0)) 'cdbl函数:转换为双精度浮点型
	for i=1 to ubound(arr)
		if cdbl(arr(i))>max then max=cdbl(arr(i))
	next 
end function 
function min(x)
	dim arr,i
	arr=split(x,",")
	min=cdbl(arr(0))
	for i=1 to ubound(arr)
		if cdbl(arr(i))<min then min=cdbl(arr(i))
	next
end function
'调用方式
dim arr : arr="15,2,433,10000,8888"
response.Write("<p>数组为:" & arr & "</p>")
response.Write("<p>数组中的最大值为:" & max(arr) & "</p>")
response.Write("<p>数组中的最小值为:" & min(arr) & "</p>")
%>

发布时间:2016年2月1日 | 评论:0 | 浏览: | 标签:算法  数组  最大值  最小值  

«12»