lan/kotlin

[Kotlin] 특정 값의 약수 중 난수 선택

캄춰 2023. 11. 2. 11:13
728x90
반응형

현재 풍무한수학 어플리케이션을 작업 중 특정 값을 나눔에 있어서 딱 떨어 맞아야 하는 경우가 필요하였다.

Question1, Question2 라벨 값이 있으며

 

Question1을 Question2로 나눌 때 그 나머지가 '0'이 되어야 한다.

 

그러므로 Question2에는 Question1의 약수 중 하나의 값이 들어가야 한다.

그 하나의 값은 Random으로 난수를 적용하여 선택할 것이다.

 

 

1. Question1 자리수 입력시 해당 자리수 만큼의 난수가 도출되도록 함

    fun makeRandomFirstLineValue(questionLength: Int): Int {
        var answer: String = ""

        for (i in 1 .. questionLength) {
            val randomValue: Int = Random().nextInt(9) + 1
            answer = randomValue.toString() + answer
        }

        NLog.i("makeRandomFirstLineValue.. answer:$answer")

        return answer.toInt()
    }

 

 

 

2. Question2 값 만들기

        val divisors = mutableListOf<Int>()
        for (i in 1 .. maxValue / 2) {
            if (maxValue % i == 0) {
                divisors.add(i)
            }
        }
        NLog.i("makeRandomSecondLineValue.. divisors:$divisors")
        val randomValueSize = divisors.size
        val randomIndex = if (randomValueSize > 1) Random().nextInt(randomValueSize) else 0

        divisors[randomIndex]
728x90
반응형

'lan > kotlin' 카테고리의 다른 글

[Kotlin] when  (0) 2023.11.23
[Kotlin] Type 타입 확인 방법  (0) 2023.11.10