程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdu_2031_進制轉換_解題報告

hdu_2031_進制轉換_解題報告

編輯:C++入門知識

簡單題

思路:

將十進制的32位整數轉換成其他進制,這個可以用余數定理,關於進制轉換的文章谷歌一下已很多,這裡不詳述

此題解法可以采用最簡單最直接想到的方法,就是保存轉換後的數,再倒序輸出,可以利用打表技巧輸出:


[cpp] 
char    table[] = "0123456789ABCDEF"; 

char    table[] = "0123456789ABCDEF";
另一個解法就是用棧,前幾次的計算的結果不輸出,壓棧,直到最後的數為零時終止並向上返回,這時就出棧,把壓棧的結果逐個輸出

關鍵代碼:


[cpp]
void fun(int n, int r) 

  if (n) 
  { 
    fun(n / r, r); 
    printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0'); 
  } 

void fun(int n, int r)
{
  if (n)
  {
    fun(n / r, r);
    printf("%c", n % r > 9 ? n % r - 10 + 'A' : n % r + '0');
  }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved