Android 앱개발 공부/TIL(Today I Learned)

[Android] TIL 31일차

bunny code 2024. 7. 8. 20:52

반복문과 조건문 타파하기

 

1. 1~100의 숫자중 2의 배수이면서 3의배수(and조건)인 숫자 출력해주세요

fun main(){
    for(i in 1..100){
        if(i%2==0 && i%3==0)
            println(i)
    }
}

 

 

2. 1~100까지 정수 중 홀수의 합을 출력해 주세요. [입력: X, 출력: 2500]

fun main(){
    var answer = 0
    for(i in 1..100){
        if(i%2!=0)
            answer += i
    }
    print("1부터 100까지 홀수의 합 : ${answer}")
}

 

 

3.

 

4. 1에서 9까지 한 자리 자연수 입력 시 그 수만큼 반복된 문자열 출력 (입력: 3 -> 출력: 333)

fun main(){
    print("숫자를 입력하세요 : ")
    val n = readln().toInt()
    var answer = ""
    for(i in 1..n){
        answer += n.toString()
    }
    print(answer)
}

 

5. 3과목 점수를 입력받아 평균 점수를 출력하고, 평균 점수가 70점 이상이면 합격입니다를, 아니면 불합격입니다를 출력해주세요.

fun main(){
    print("수학 점수를 입력해주세요 : ")
    val math = readln().toInt()

    print("국어 점수를 입력해주세요 : ")
    val kor = readln().toInt()

    print("영어 점수를 입력해주세요 : ")
    val eng = readln().toInt()

    var average = (math+kor+eng)/3

    println("평균 : $average")

    if(average>=70)
        print("합격입니다.")
    else
        print("불합격입니다.")
}

 

6. 1에서 10중에 약수를 출력해주세요.(입력:9, 출력:1,3,9), 입력:10, 출력 : 1,2,5,10

fun main(){
    print("숫자를 입력해주세요 : ")
    val num = readln().toInt()
    for(i in 1..num){
        if(num%i==0)
            println(i)
    }
}

 

7. 시작 수와 끝 수를 입력 받아 그 사이에 있는 5의 배수를 출력하시오 (입력 : 3, 38 / 출력 : 5, 10, 15, 20, 25, 30, 35)

fun main(){
    print("첫 번째 숫자를 입력해주세요 : ")
    val num1 = readln().toInt()

    print("두 번째 숫자를 입력해주세요 : ")
    val num2 = readln().toInt()

    if(num2>=num1) {
        for (i in num1..num2){
            if(i%5==0)
                println(i)
        }
    }
    else {
        for (i in num2..num1){
            if(i%5==0)
                println(i)
        }
    }
}

 

8. 1에서 100까지 숫자 중에서 5의 배수만 더한 값을 출력 (입력 : 없음, 출력 : 1050)

fun main(){
    var answer = 0
    for(i in 1..100){
        if(i%5==0)
            answer += i
    }
    print("1부터 100까지 5의 배수의 합은 : ${answer}")
}

 

9. 반복문을 사용하여 아래와 같이 별을 출력하는 프로그램을 작성해보세요.

fun main(){
    for(i in 1..5){
        println()
        for(j in 1..i)
            print("*")
    }
}

 

* 출력 결과

*
**
***
****
*****

 

10. 사용자로부터 입력 받은 숫자에 대한 구구단을 출력하는 프로그램을 작성해보세요

fun main(){
    print("숫자를 입력하세요 : ")
    var num = readln().toInt()

    for(i in 1..9){
        println("${num}*${i} = ${num*i}")
    }
}

 

11. 로또번호 생성기, 1~45중 6개의 숫자 랜덤, 중복 숫자는 건너뛰기.

fun main(){

    val random = Random()
    val list = mutableListOf<Int>()
    while (list.size < 6) {
        val number = random.nextInt(45)+1
        if (list.contains(number)) {
            continue
        }
        list.add(number)
    }
    println(list)

}

 

 

12. 진행 중..

fun main(){
val a = 20
val b = 17
var y = 450
var count = 0
var answer = 0

print("시작하려는 채굴기를 선택해주세요. 1.${a}kg 채굴기 2.${b}kg 채굴기 : ")
var select = readLine()!!

    when (select) {
        "1" -> {
            while (y>0){
                y -= a
                count ++
                if(count%2==0){
                    y -= b
                    count++
                }
                answer = y+a
            }
        }
        "2" -> while (y>0){
            y -= b
            count ++
            if(count%2==0){
                y -= a
                count++
            }
            answer = y+b
        }
    }
println(count)
print(answer)
}

 

13. A는 사표를 내고 받은 퇴직금을 쓰면서 쉬려고 합니다. A가 돈이 떨어져서 다시 일하러 나가야 하는 날짜가 "n년-m월-d일"이라고 할 때, 아래의 조건을 만족하는 "n, m, d"의 값을 출력하세요.

 

* 조건

조건 1) A는 출근과 동시에 월급을 받을 수 있으며, 주간 근무를 하게됩니다.
조건 2) A가 퇴직한 날은 20년 5월 13일이며, 퇴직금으로 받은 돈은 1500만원입니다.
조건 3) 매월 통신비(10만원, 10일), 월세(35만원, 15일), 보험비(15만원, 20일), 아파트 관리비(15만원, 20일), 카드비(75만원, 25일)가 지출됩니다.
조건 4) 오직 퇴직금만을 활용하여 생활비를 충당해야하며, 추가 수입원은 없습니다.
조건 5) 상기 명시된 지출금액 이외에 추가 지출은 발생하지 않으며, 지출금액은 오후에 결제가 됩니다.

 

fun main(){
    var n = 20
    var m = 5
    var d = 13
    var money = 1500
    while(true){
        d++
        when{
            d == 10 -> money -= 10
            d == 15 -> money -= 35
            d == 20 -> money -= 30
            d == 25 -> money -= 75
            d == 30 -> {
                m++
                d=0
            }
            m == 13 -> {
                n++
                m=1
            }
            money <= 0 -> break
        }
    }
    print("${n}년 ${m}월 ${d}일")
}

 

 

14. 사용자로부터 하나의 정수를 입력받고 해당 숫자의 모든 약수를 배열 형태로 나타내시오

fun main(){
    var list = arrayListOf<Int>()
    print("정수를 입력하세요 : ")
    var num = readln().toInt()

    for(i in 1..num){
        if(num % i== 0)
            list.add(i)
    }
    print(list)
}

 

15. 사용자로부터 숫자를 입력받고 해당 숫자가 3의 배수인지 5의 배수인지 둘 다 아닌지 판별하는 코드를 작성하시오(0 입력 시 다른 숫자를 입력하라는 문구가 나오도록 출력하고 3의 배수와 5의 배수 모두 해당하는 경우 3의 배수이면서 5의 배수라는 문구가 나오도록 출력) Ex) 입력 : 15 -> 출력 : 3의 배수이면서 5의 배수입니다.

fun main(){
    print("숫자를 입력하세요 : ")
    var num = readln().toInt()

    when{
        num == 0 -> print("다른 숫자를 입력하세요.")
        num%3 == 0 && num%5 == 0 -> print("3의 배수이면서 5의 배수입니다.")
        num%3 == 0 -> println("3의 배수입니다.")
        num%5 == 0 -> print("5의 배수입니다.")
        else -> print("3의 배수도 5의 배수도 아닙니다.")
    }
}

 

 

16. 사용자로부터 숫자를 입력받고 해당 숫자를 1부터 9까지 곱한 결과들의 합을 출력하시오.

fun main(){
    print("숫자를 입력하세요 : ")
    var num = readln().toInt()
    var sum = 0
    for(i in 1..9){
        sum += num*i
    }
    print("${num}을 1부터 9까지 곱한 결과의 합은 : ${sum}")
}

 

17. 사용자로부터 문자열을 입력받고 해당 문자열에 문자 'p'가 몇 개 있는지 세어주는 코드를 작성하시오

fun main(){
    print("문자를 입력하세요 : ")
    val str = readln()
    val chr = 'p'
    var count = 0

    for(char in str){
        if(chr == char)
            count++
    }
    print("p의 갯수는 : ${count}")
}

 

18. 사용자로부터 두 숫자를 입력받아 첫 번째 숫자와 두 번째 숫자 사이의 모든 숫자 합을 구하시오

fun main(){
    print("첫 번째 숫자를 입력하세요 : ")
    val num1 = readln().toInt()

    print("두 번째 숫자를 입력하세요 : ")
    val num2 = readln().toInt()
    var answer = 0

    if(num2>=num1){
        for(i in num1..num2){
            answer += i
        }
    }
    else{
        for(i in num2..num1){
            answer += i
        }
    }
    print("${num1}과 ${num2} 사이 숫자의 합은 : ${answer}")
}

 

19. 안녕! 나는 낄몬이라고 해! 길이가 n이고 "낄몬낄몬낄... 와 같은 패턴을 유지하는 문자열을 리턴해보세요! 길이는 원하는 만큼 임의로 설정해서 출력해보세요! 예) n이 5면 "낄몬낄몬낄"을 리턴하고 6이면 "낄몬낄몬낄몬"을 리턴하시오.

 

* 조건

n이 5면 "낄몬낄몬낄"을 리턴하고 6이면 "낄몬낄몬낄몬"을 리턴하시오.

 

fun main(){
    print("숫자를 입력하세요 : ")
    val n = readln().toInt()
    var str = ""
    for(i in 1..n){
        if(i%2==1)
            str += "낄"
        else
            str += "몬"
    }
    print(str)
}

 

20. 업다운 게임! 1부터 100 사이의 숫자 중 골라 정답을 맞춰보세요!

 

* 조건

조건 1) Random.nextInt(1, 101)를 사용하여 1부터 100 사이의 임의의 숫자 선택
조건 2) 입력한 숫자가 정답보다 작은 경우, 큰 경우, 정답인 경우를 출력하게 하고 정답이면 게임 종료

 

fun main(){
    while (true){
        print("숫자를 입력하세요 : ")
        val num = readln().toInt()

        var random = Random.nextInt(1,101)
        if(num<random)
            println("${num}은 ${random}보다 작습니다.")
        else if(num>random)
            println("${num}은 ${random}보다 큽니다.")
        else {
            print("정답입니다.")
            break
        }
    }
}

 

 

 

'Android 앱개발 공부 > TIL(Today I Learned)' 카테고리의 다른 글

[Android] TIL 32일차 - 2  (0) 2024.07.09
[Android] TIL 32일차  (0) 2024.07.09
[Android] TIL 30일차  (0) 2024.07.05
[Android] TIL 29일차  (0) 2024.07.04
[Android] TIL 28일차  (0) 2024.06.28