U E D R , A S I H C RSS

An Easy Problem/강소현

Status

Problem 2453Usertalin0528
Memory3656KTime375MS
LanguageJavaResultAccepted

Idea

bit , 10 -> 2 다ㅠㅠ(끝내고 다 반대로..;ㅁ;..!)
1 때 그 가 0면 1 로 보내고, 1면 맨 끝로 보내는...
ex)
0010 0000 -> 0100 0000
0011 1100 -> 0100 0111

Source Code

import java.util.Scanner;
public class Main{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		while(sc.hasNextInt()){
			int i = sc.nextInt();
			if(i == 0)
				break;
			printJ(i);
		}
	}
	private static void printJ(int i){
		int [] bin = binI(i);
		int num = 0, count=0;
		while(num<bin.length-1){
			if(bin[num] == 1){
				if(bin[num+1] == 0){
					bin[num+1] = 1;
					bin[num] = 0;
					break;
				}else{
					bin[num] = 0;
					bin[count++] = 1;
				}
			}
			num++;
		}
		int result = 0;
		for(int k=0; k<bin.length;k++){
			result += bin[k]*Math.pow(2,k);
		}
		System.out.println(result);
	}

	private static int [] binI(int i){
		int [] temp = new int [21];
		int num = 0;
		while(i>0){
			temp[num++] = i%2;
			i = i/2;
		}
		return temp;
	}
}

Trial and error

  • Compile error
    • "Main" 다. 깜 poj 같:)
  • Runtime error
    • printJ while(numnum+1가 index bound of exception다.
  • Wrong answer
    • 2^20 = 1048576 로 1000000보다 까 배 기를 20는데, 1과 0 기면 보다 더 는 경를 고려다. 그 결과 1~1000000 4개 가 맨 1 력된! ;ㅅ; 뜻 보길래 맞 ㅋㅋ poj는 ! 내가 바보 ㅠㅠ

I 기대
524288 1048576 524288
786432 1048577 524289
917504 1048579 524291
983040 1048583 524295

  • 10를 2려고 다가 그게 매 렵다는 깨달...; 배는 방법 . -

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:27
Processing time 0.0105 sec