블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

daum2

업무일지 / 2011. 3. 15. 10:54
def check_cycle(d):
remain_list = []
dividend = 1 # 피제수
n = 0 # 현재 피제수의 인덱스
while True:
remain = dividend % d # 나머지
if remain in remain_list:
return n - remain_list.index(remain)
else:
remain_list.append(remain)
dividend = remain * 10
n += 1

max_d = d = 2
max_n = 0
while d < 1000:
temp = check_cycle(d)
if temp > max_n:
max_n = temp
max_d = d
d += 1
print(max_d)



===========================================================================




C 언어가 아니군요.

언뜻 보고 루비 인줄 알았으나  문법이 이상해서

다시 보니 또 루비가 아니라 파이썬이군요.

 

위소스 그대로  변경없이 순차적으로 자바로 변경했기 때문에, 클래스 구조 자체는 좀 보기 않좋은데요

그러나 재사용 되는 것 같지 않기 때문에 생성자를  통해 초기화 하는 등 그런 작업은 하지 않고

메소드 안에서 모두 지역변수로 생성했고요.

( 위 소스에서도 다 지역변수로 생성되었기 때문에 , 그냥 자바로 변경하다 보니 그렇게 되었네요)

 

위 메소드 , 그러니까 check_cycle(d): 가
포함된 클래스는 TestUtil 라고 하고 그걸 실행시키는 클래스는 TestExam 라고 임의로

정했습니다.

 

* 1개의 파일에 아래 2개의 클래스 소스를 같다 붙여서 그냥 실행시키며 됩니다.

* 클래스를 각각의 파일에 나누려고 하시면  각각의 클래스 정의부에 public 선언을 추가해주시고,

  main 메소드가 있는 클래스에서 TestUtil 클래스를 import 해주시면 됩니다.

 

// 아래의 클래스는 위 소스상에서 메소드(def check_cycle(d):)가 있는 클래스입니다.

 

import java.util.ArrayList;

 

class TestUtil { 
 public int check_cycle(int d){
  ArrayList<Integer> remain_list = new ArrayList<Integer>();
  int dividend = 1;
  int n = 0;
  while (true){
   int remain = dividend % d;
   if (remain_list.contains(remain)){
    return n - remain_list.indexOf(remain);
   }
   else{
    remain_list.add(remain);
    dividend = remain * 10;
    n += 1;
   }
  }  
 }
}

 

// 아래의 클래스는 위 클래스를 실행시키는 main 메소드가 있는 클래스입니다.

class TestExam {
 public static void main(String[] args) {
  TestUtil cal = new TestUtil();  // 위 클래스의 객체를 생성
  int max_d = 2;
  int d = 2;
  int max_n = 0;
  while (d<1000){
   int temp = cal.check_cycle(d);
   if (temp > max_n){
    max_n = temp;
    max_d = d;
   }
   d += 1;      
  }  
  System.out.println(max_d);
 }  
}

 

파이썬은 아주 예전에 잠깐 본게 다라서, 탭 구분하는게 눈에 잘 들어오지 않는 군요.

이상 도움이 되셨기를..



'업무일지' 카테고리의 다른 글

toad dmp import  (0) 2011.04.12
Toad Tip  (0) 2011.04.06
아시아나 에러 해결  (0) 2011.03.25
daum2  (0) 2011.03.15
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함