1. 程式人生 > >藍橋杯演算法題庫 進位制轉換_十進位制轉16進位制

藍橋杯演算法題庫 進位制轉換_十進位制轉16進位制

藍橋杯演算法題庫 十進位制轉16進位制

題目

問題描述
十六進位制數是在程式設計時經常要使用到的一種整數的表示方式。
它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號,分別表示十進位制數的0至15 。
十六進位制的計數方法是滿16進1,所以十進位制數16在十六進位制中是10,而十進位制的17在十六進位制中是11,
以此類推,十進位制的30在十六進位制中是1E給出一個非負整數,將它表示成十六進位制的形式。
輸入格式輸入包含一個非負整數a,表示要轉換的數。0<=a<=2147483647 輸出格式 輸出這個整數的16進位制 表示 樣例輸入 30 樣例輸出 1E

解題思路

1、定義一個字元組,儲存10,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號用於字元轉換。
2、第把十進位制數字除16取餘,直到商為0為止具體見圖,在這裡我用字串str儲存餘數便於相加在這裡插入圖片描述
3、輸出str。

//java程式碼

		public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int x = n;
		//儲存0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16個符號
char[] m = new char[16]; for (int i = 0; i < 10; i++) { m[i] = (char) (i + '0'); } for (int i = 10; i < 16; i++) { m[i] = (char) ('A' + (i - 10)); } String str = ""; while (x != 0) { str = m[x % 16] + str; x = x / 16; } System.out.println(str); }