대수 상승과 상가

1720 단어
곱하기 및 더하기:
 
bigMul: function(num1, num2) {	// 
					var numArr1 = ('' + num1).split('').reverse(),
						numArr2 = ('' + num2).split('').reverse(),
						retArr = [],
						len1 = numArr1.length,
						len2 = numArr2.length;
		
					for (var i = 0, len = len1 + len2 - 1; i <= len; i++) {
						retArr[i] = 0;	
					} 
					for (i = 0; i< len2; i++) {
						for(var d = 0; d < len1; d++) {
							retArr[d + i] += numArr1[d] * numArr2[i];
							retArr[d + 1 + i] += Math.floor(retArr[d + i] / 10);
							retArr[d + i] = retArr[d + i] % 10;
						}            
					}
					retArr.reverse();
					if (retArr[0] == 0) {
						retArr.shift();
					} 
					return retArr.join('');
				},
				bigAdd: function(num1, num2) {	// 
					var numArr1 = ('' + num1).split('').reverse(),
						numArr2 = ('' + num2).split('').reverse(),
						len1 = numArr1.length,
						len2 = numArr2.length,
						carry = 0,
						bit1 = 0, 
						bit2 = 0,
						bitSum = 0;

					for (var i = 0, len = Math.max(len1, len2); i < len; i++) {
						bit1 = i < len1 ? numArr1[i] : 0;
						bit2 = i < len2 ? numArr2[i] : 0;
						bitSum = Math.round(bit1) + Math.round(bit2) + carry
						numArr1[i] = '' + bitSum % 10;
						carry = bitSum >= 10 ? 1 : 0;
					}
					if ( 1 == carry ) {
						numArr1.push(1);
					}
					return numArr1.reverse().join('');
				}

 

좋은 웹페이지 즐겨찾기