Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 12871
  • 백준 6550
  • 백준 7567
  • 백준 1914
  • 백준 3135
  • 백준 2343
  • 백준 15312
  • 백준 15655
  • 자바
  • 백준 1011
  • 백준 2225
  • 백준 24039
  • 백준 3049
  • 백준 4659
  • 백준 7662
  • 백준 1064
  • 백준 2591
  • 백준 10709
  • 백준
  • 백준 14582
  • 백준 15961
  • 백준 1747
  • 백준 12605
  • 백준 8892
  • Java
  • 백준 16194
  • 백준 16926
  • 백준 2467
  • 백준 1495
  • 백준 1531
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 2526 싸이클(Java)
백준

백준 2526 싸이클(Java)

2023. 1. 18. 04:27

https://www.acmicpc.net/problem/2526

 

2526번: 싸이클

두 자연수 N과 P를 가지고  다음 과정을 거쳐서 나오는 수를 차례대로 출력해보자. 처음 출력하는 수는 N이고, 두 번째 이후 출력하는 수는 N을 곱하고 P로 나눈 나머지를 구하는 과정을 반복하여

www.acmicpc.net


 

해석 및 팁

 


 

이문제에서 n 과 p 를 입력받았을때 나머지의 개수는 최대 p-1개 이므로 크키가 p인 배열을 생성한 후 반복문을 통해 나머지의 값에 해당하는 배열의 값을 증가시킵니다. 그리고 마지막에 중복된 숫자들의 개수를 세어서 출력해주면 됩니다. 

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();
    int p = sc.nextInt();
    int[] arr = new int[p];       //나머지의 개수는 최대 p-1 개
    int count = 0;
    int num = n;

    while(true) {
      num = num * n % p;
      arr[num]++;
      if(arr[num] == 3) break;
    }

    for(int i=0; i<p; i++) {
      if(arr[i] > 1) count++;      //중복되면 count++
    }
    System.out.println(count);
  }
}

'백준' 카테고리의 다른 글

백준 14659 한조서열정리하고옴ㅋㅋ(Java)  (0) 2023.01.18
백준 11170 0의 개수(Java)  (0) 2023.01.18
백준 1526 가장 큰 금민수(Java)  (1) 2023.01.18
백준 14696 딱지놀이(Java)  (0) 2023.01.18
백준 1834 나머지와 몫이 같은 수(Java)  (0) 2023.01.17
    '백준' 카테고리의 다른 글
    • 백준 14659 한조서열정리하고옴ㅋㅋ(Java)
    • 백준 11170 0의 개수(Java)
    • 백준 1526 가장 큰 금민수(Java)
    • 백준 14696 딱지놀이(Java)
    Park DJ
    Park DJ

    티스토리툴바