首页 > 其他 > 详细

kotlin learning

时间:2020-05-19 18:23:50      阅读:67      评论:0      收藏:0      [点我收藏+]

on board: IntelliJ IDEA Community Edition 2020.1.1 x64

beautify: ctrl+alt+L

Kotlin Heroes: Episode 3

C

// sort,very standard

private fun readLn() = readLine()!! // string line
private fun readInt() = readLn().toInt() // single int
private fun readLong() = readLn().toLong() // single long
private fun readDouble() = readLn().toDouble() // single double
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
private fun readLongs() = readStrings().map { it.toLong() } // list of longs
private fun readDoubles() = readStrings().map { it.toDouble() } // list of doubles

private fun readArray() = readStrings().map { it.toInt() }.toIntArray() // list of ints

var INF = 1_000_000_000 + 10


fun main() {
    var t = readInt()
    while (t-- > 0) {
        var n = readInt()
        var a = readInts()
        a.sorted()
        var sum = 0
        var minn = Pair(INF, 0)
        for (i in a.indices) {
            if (a[i] > 0) {
                sum += a[i]
                if (a[i] < minn.first)
                    minn = Pair(a[i], i)
            }
            if (a[i] < 0 && -a[i] < minn.first)
                minn = Pair(-a[i], i)
        }
        println(sum - minn.first)
        var ans = mutableListOf<Int>()
        for (i in a.indices) {
            if ((a[i] > 0 && i != minn.second) || (a[i] < 0 && i == minn.second))
                ans.add(1)
            else
                ans.add(0)
        }
        println(ans.joinToString(""))
    }
}

A

//class

private fun readLn() = readLine()!! // string line
private fun readInt() = readLn().toInt() // single int
private fun readLong() = readLn().toLong() // single long
private fun readDouble() = readLn().toDouble() // single double
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
private fun readLongs() = readStrings().map { it.toLong() } // list of longs
private fun readDoubles() = readStrings().map { it.toDouble() } // list of doubles


fun main() {
    var t = readInt()
    repeat(t) {
        var n = readInt()
        println(n.round().convert())
    }
}

fun Int.convert(): String {
    return when {
        this >= 1000000 -> {
            "${this / 1000000}M"
        }
        this >= 1000 -> {
            "${this / 1000}K"
        }
        else -> {
            "$this"
        }
    }
}

fun Int.round(): Int {
    return when {
        this >= 1000000 -> {
            (this + 500000) / 1000000 * 1000000
        }
        this >= 1000 -> {
            (this + 500) / 1000 * 1000
        }
        else -> {
            this
        }
    }
}
//import

import kotlin.math.roundToInt


private fun readLn() = readLine()!! // string line
private fun readInt() = readLn().toInt() // single int
private fun readLong() = readLn().toLong() // single long
private fun readDouble() = readLn().toDouble() // single double
private fun readStrings() = readLn().split(" ") // list of strings
private fun readInts() = readStrings().map { it.toInt() } // list of ints
private fun readLongs() = readStrings().map { it.toLong() } // list of longs
private fun readDoubles() = readStrings().map { it.toDouble() } // list of doubles


fun main() {
    var t = readInt()
    repeat(t) {
        var n = readInt()
        solve(n)
    }
}

fun solve(n: Int) {
    if (n >= 999500) {
        println((n / 1000000.0).roundToInt().toString() + "M")

    } else if (n >= 1000) {
        println((n / 1000.0).roundToInt().toString() + "K")
    } else println(n)
}

kotlin learning

原文:https://www.cnblogs.com/reshuffle/p/12918224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!