棧的應用3--進制轉換

進制轉換可以使用使用取餘法來實現

基本上是學習編程最常見的一個練習。

學習幾個基本的單詞

被除數: dividend

除數: divisor

商: quotient

餘數: remainder


function numberConversion(num, base) {
	var stack = new Stack();
	var base_str = "0123456789ABCDEF";
	var quotient = Math.floor(num / base);
	var remainder = num % base;
	stack.push(remainder);
	while (quotient != 0) {
		remainder = quotient % base;	
		quotient = Math.floor(quotient / base);
		stack.push(remainder);		
	}

	/*出棧拼接數據*/
	var num = stack.pop();
	var result = "";
	while(num != undefined) {   
		result += base_str[num];
		num = stack.pop();
	}

	return result;
}

/*不使用棧的結構也可以使用數組逆轉來實現*/
function myNumberConversion (num, base) {
	var base_str = "0123456789ABCDEF";
	var quotient = Math.floor(num / base);
	var remainder = num % base;
	var result = [];
	result.push(remainder);

	while(quotient != 0) {
		remainder = quotient % base;
		quotient = Math.floor(quotient / base);
		result.push(remainder);
	}

	return result.reverse().join("");
}


發佈了88 篇原創文章 · 獲贊 37 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章