간단한 질문이 올라왔길래 첨에는 charAt(i)으로 간단하게 풀어줬더니, 그런 메소드를 쓰지않고 수식등으로만 풀어달라고 의견을 남겼다.

 

링크 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=259016951

 

그래서 split, substring, charAt, StringTokenizer 등을 쓰지 않고... 연산자를 기본으로 사용하는 조건문과 순환문, 수식연산으로만(toString을 쓰긴했지만..) 풀어줬더니..(안 올릴려다가 이런식의 문제 풀이를 좋아하니까..)

 

 

채택된 답변) (내용만 보면 뭘로 만들었어도 크게 의미가 없지만 일단은..)C로 만든것..

 

C 언어로 하면 이렇게 합니다.


(숫자 / 원하는 자릿수) % 10;

 % 연산자는 나눈 나머지 값을 구하는 것으로 10으로 나눈 나머지는 1의 자릿수가 되는거줘..

그래서 원수를 원하는 자릿수로 나누어서 몫을 구하면 원하는 자릿수의 숫자가 1읜 자리수가 됩고 그걸 10으로 나눈 나머지로 구하면 원하는 자숫수의 수를 알 수 있게 됩니다.


간단하게 코드로 보면


int num = 2529;

int n1, n2, n3, n4;


n1 = (num / 1) % 10;

n2 = (num / 10) % 10;

n3 = (num / 100) % 10;

n4 = (num / 1000) % 10;


여기에서 n1 = (num / 1) % 10; 은 n1 = num % 10; 로 n4 = num / 1000; 로 하면 되지만 수식화 할 경우에는 위처럼 되겠줘.

 

 

기타 답변) 파이선으로 만든것..

 

Python3 으로 작성한 코드입니다.

def get_digit(n, k):
    return (n // k) % 10

d1=get_digit(2529, 1) # 1의 자리
d2=get_digit(2529, 10) # 10의 자리
d3=get_digit(2529, 100) # 100의 자리
d4=get_digit(2529, 1000) # 1000의 자리
print(d1, d2, d3, d4)

 

 

아.. 이런걸 원하는 거였구나.. X병..

 

그러면 질문을 똑바로 하던가..

질문의 마지막에..

 

내가 만약 임의에 수에서 100의 자리 수가 뭐인지만 알고 싶다고 할때

임의수 n 값의 100의 자리 수만 return 하는 코드를 작성하려면 어떻게 해야하는지 궁금합니다. 

 

이렇게 진한부분처럼 되어 있길래 고민해서 풀어줬더니.. 헐..

 

 

내 답변)

 

public static void main(String[] args){
  
  int a = 3; // 1부터 찾을려는 숫자의 최대 자릿수 중에서 입력.
  int b = 182539;
  int c = (Integer.toString(b)).length(); // System.out.println("자릿수 = " +  c);
  
  b = num(a, b, c);
  System.out.println(b);
}
 
static int num(int a, int b, int c){ // a = 자릿수, b = 입력받은 숫자, c = 숫자의 전체 자릿수.
  int num = 1;
  
  for(int i = 1; i < c; i++){
    num *= 10;
  }
  
  if(a < c){ 
    b = b % num;
    // System.out.println("1-1. " + b);
    return num(a, b, c - 1);
  }else{
    b = b / num;
    // System.out.println("2. "+ b);
    return b;
  }

}

 

 

결과)


5 <--'a'에 입력한 3번째 자리의 숫자.

 

 

추천 2개나 받았지만 짜증나서 지워버렸다.

 

채택한 꼬라지를 보면 첨부터 C로 짠 코드가 필요했던것 같은데(답변순서가 파이선 - 자바 - C 답변 순이었음.).. 

첨부터 그걸로 만들어 달라던가..

 

 

링크 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=240211212&page=1#answer2

정말 위 링크 질문자 X끼 만큼이나 짜증나게 하네..

 

 

 

// 질문 도입부에 'C , c++ c# java 뭐든 상관없습니다.'.. 재미없게 왠 허세작렬..

 

'course > 자바' 카테고리의 다른 글

간단한 nextLine() 메소드 활용법  (0) 2016.09.20
간단한 문자열 파인더(Finder)  (0) 2016.07.26
간단한 로그 출력 프로그램.  (0) 2015.08.22