• 求公约数和比值


    <!doctype html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title>公约数  简比</title>
    	<style>
    		div{padding:20px;}
    	</style>
    </head>
    <body>
    	
    	<script type="text/javascript">
    		//求两个数的比值
    		function getRatio(a, b){
    			var ma = 1,mb = 1,c;//倍数
    			a += '',b += '';
    			if(a.indexOf('.')>-1){
    				ma = Math.pow(10,a.split('.')[1].length);
    			}else if(a.indexOf('/')>-1){
    				ma = +a.split('/')[1]
    			}
    			if(b.indexOf('.')>-1){
    				mb = Math.pow(10,b.split('.')[1].length);
    			}else if(b.indexOf('/')>-1){
    				mb = +b.split('/')[1]
    			}
    			a = eval(a)*ma*mb;
    			b = eval(b)*ma*mb;
    			c =  getCommonDivisor(a,b);
    			console.log('最小整数比:'+(a/c)+':'+(b/c));
    		}
    		
    		// 计算多个数字的最简比值
    		function getRatioMore(arr){
    			var i = 0, ln = arr.length, newArr = [], 
    			resArr = [],
    			mnum=1, multiple = 1, c;
    			//制作新数组
    			for(i=0; i<ln; i++){
    				arr[i] += '';
    				if(arr[i].indexOf('.')>-1){
    					mnum = Math.pow(10, arr[i].split('.')[1].length);
    					multiple *= mnum;
    				}else if(arr[i].indexOf('/') >-1){
    					mnum = +arr[i].split('/')[1];
    					multiple *= mnum;
    				}
    			}
    			for(var j=0; j<ln; j++){
    				newArr[j] = arr[j] * multiple;
    			}
    			console.log(newArr);
    			c = getCommonDivisorMore(newArr);//求公约数
    			for(var i=0; i<ln; i++){
    				resArr.push(newArr[i]/c);
    			}
    			console.log(resArr.join(':'));
    		}
    		//计算最大公约数,阿基里德算法
    		function getCommonDivisor(a,b){
    			var c;
    			if(a<b){
    				b = [a,a=b][0];
    			}
    			while(c = a%b){
    				a = b;
    				b = c;
    			}
    			return b;
    		}
    		//计算多个数字的最大公约数
    		function getCommonDivisorMore(arr){
    			if(arr instanceof Array && arr.length > 1){
    				var i, ln = arr.length, prevd = arr[0];
    				for(i = 0; i<ln; i++){
    					prevd = getCommonDivisor(prevd, arr[i]);
    				}
    				return prevd;
    			}
    		}
    		console.log(getCommonDivisorMore([205, 620, 320, 440]));
    		getRatioMore([20.5, 62, 32, 44])
    	</script>	
    </body>
    </html>
    

      

  • 相关阅读:
    iframe自适应高度的多种方法
    jquery 限制上传文件的类型和大小
    20200303 pandas
    20200306 Linux基础
    20200305 VMware虚拟机安装及centOS
    20200310 CMDB基础设计
    20200407 算法与数据结构
    20200403 MongoDB操作以及pyMongo
    20200402 MongoDB安装及简介
    20200401 docker部署与mysql主从搭建django读写分离
  • 原文地址:https://www.cnblogs.com/youzhuxiaoyao/p/8658074.html
Copyright © 2020-2023  润新知