โ ๋ฌธ์
10์ง์ ์ ์๋ฅผ ์ ๋ ฅ ๋ฐ์ 2์ง์๋ก ๋ณํํด์ ์ถ๋ ฅํ์์ค.
โ ์ฝ๋
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] leejin = new int[20];
for (int i = 0; i < leejin.length; i++) {
leejin[i] = num%2;
num /= 2;
}
for (int i = leejin.length-1; i >= 0; i--){
System.out.print(leejin[i]);
}
}
}
โ ์ถ๋ก ๊ณผ์
์ญ์ง์๋ฅผ ์ด์ง์๋ก ๋ง๋ค์ด์ฃผ๋ ค๋ฉด 2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ํ์ฉํด์ฃผ๋ฉด ๋๋ค.
์ญ์ง์๋ฅผ 2๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ณ์ํด์ ๊ตฌํด์, ์ด๋ฅผ ์ญ์์ผ๋ก ๋์ดํด์ฃผ๋ฉด ์ด์ง์๋ฅผ ์ป์ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ๋ฌธ์ ๋ณด๊ธฐ์์์ฒ๋ผ 10์ ์ด์ง์๋ก ๋ณํํ๋ค๊ณ ๊ฐ์ ํ๋ฉด
10 ÷ 2 = 5, ๋๋จธ์ง 0
5 ÷ 2 = 2, ๋๋จธ์ง 1
2 ÷ 2 = 1, ๋๋จธ์ง 0
1 ÷ 2 = 0, ๋๋จธ์ง 1
๋งจ ๋ฐ์ ์ค ๋ถํฐ ๋๋จธ์ง๋ฅผ ์์๋๋ก ๋์ดํ๋ฉด 1010์ด๋ค.
๋ฐ๋ผ์ 10์ ์ด์ง์๋ 1010 ์ด๋ค.
์ด ๋ก์ง์ ๋ฐ๋ผ ์ฝ๋๋ฅผ ์ง ๋ณด๋ฉด
์ฒ์์ ๋๋ํ๊ฒ 20์นธ์ง๋ฆฌ ๋ฐฐ์ด์ ์ ์ธํด์คฌ๋ค.
๊ทธ๋ฆฌ๊ณ ์์๋๋ก ์ ๋ ฅ๋ฐ์ ์ซ์๋ฅผ 2๋ก ๋๋ ๋๋จธ์ง๊ฐ์ ๋ฐฐ์ด ์ ์นธ ๋ถํฐ ์ฑ์์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์ ์ซ์๋ฅผ 2๋ก ๋๋ ๋ชซ์ ๊ฐ์ง๊ณ ์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ค๋ค.
for๋ฌธ์ ๋๋ฆฌ๋ ๋์ ๋ฐฐ์ด [leejin] ์ ๋ด๊ธฐ๋ ๋ฐ์ดํฐโผ
[0]๋ฒ ์ธ๋ฑ์ค | [1]๋ฒ ์ธ๋ฑ์ค | [2]๋ฒ ์ธ๋ฑ์ค | [3]๋ฒ ์ธ๋ฑ์ค |
0 | 1 | 0 | 1 |
i=0์ผ ๋ 10/2=5, ๋๋จธ์ง0 | i=1์ผ ๋ 5/2=2, ๋๋จธ์ง1 | i=2์ผ ๋ 2/2=1, ๋๋จธ์ง0 | i=3์ผ ๋ 1/2=0, ๋๋จธ์ง1 |
๊ทธ๋ฆฌ๊ตฌ ๋ฐฐ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๊บผ๋ด์ฌ ๋๋ ๋ฐ๋๋ก ๊ฐ์ฅ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ๋ด๊ธด ๋ฐ์ดํฐ๋ถํฐ ์์๋๋ก ๋นผ์ค๋ฉด ๋๋ค.
๋ฐฐ์ด ๊ธธ์ด์ -1 ๋ถํฐ 0๋ฒ ์ธ๋ฑ์ค๊น์ง๋ก ํฌ๋ฌธ ๋ฒ์๋ฅผ ์ค์ ํด์ฃผ๊ณ ๋๋ฆฌ๋ฉด ๋๋ค.