美文网首页
PAT 乙级(Basic Level)kotlin版 1007-

PAT 乙级(Basic Level)kotlin版 1007-

作者: qmr777 | 来源:发表于2020-09-09 17:37 被阅读0次
//1007
import java.util.*
import kotlin.math.sqrt

fun main(args: Array<String>) {
    //1 2 3 5 7 11
    val kin = Scanner(System.`in`)
    val a = kin.next().toInt()
    when {
        a<4 -> print(0)
        //a < 7 -> print(1)
        else -> {//start at 5
            var count = 0
            var p = 3
            var q:Int
            var pflag = true//p是否为素数
            while (p<=a){
                //q = p+2
                if (pflag||p.isPrime()){//p是
                    q = p+2
                    pflag = if (q.isPrime() && q<=a) {//p q是
                        count++
                        //println("$p   $q")
                        true
                    } else //p是q不是
                        false
                } else{
                    pflag = false//end if
                }
                    p+=2
            }
            print(count)
        }
    }
}


fun Int.isPrime():Boolean{

    return when{
        equals(1)->true
        equals(2)->true
        equals(3)->true
        else -> {
            val half = sqrt(this.toDouble()) +1
            for (i in 3..half.toInt() step 2){
                if (this%i == 0)
                    return false
            }
            return true
        }
    }
}
//1008
import java.util.*

fun main(args: Array<String>) {
    val kin = Scanner(System.`in`)
    val count = kin.next().toInt()
    val revPos = kin.next().toInt()%count
    //M是可能大于数组长度的,把%count去了能通过给的样例 但是有两个测试点答案错误
    //浪费我两个小时...
    val arrays = IntArray(count)
    for (i in 0 until count)
        arrays[i] = kin.nextInt()

    reverse1(arrays,count-revPos,count-1)
    reverse1(arrays,0,count-revPos-1)
    reverse1(arrays,0,count-1)

    for (i in 0 until count) {
        print(arrays[i])
        if (i!=count-1)
            print(" ")
        //arrays[i] = kin.nextInt()
    }
}

fun reverse1(array: IntArray, start: Int, end: Int) {
    var s = start
    var e = end
    while (s < e){
        array[s]+=array[e]
        array[e] = array[s]-array[e]
        array[s] -=array[e]
        s++
        e--
    }
}
//1009
import java.util.*

fun main(args: Array<String>) {
    val kin = Scanner(System.`in`)
    val stack = Stack<String>()
    while (kin.hasNext()) {
        stack.push(kin.next())
    }

    while (!stack.empty()){
        print(stack.pop())
        if (!stack.isEmpty())
            print(" ")
    }

}
//1010
import java.util.*

fun main(args: Array<String>) {
    val kin = Scanner(System.`in`)
    var isFirst = true
    var x:Int
    var y:Int
    while (kin.hasNextInt()){
        x = kin.nextInt()
        y = kin.nextInt()
        if (y == 0)
            continue

        if (!isFirst)
            print(" ")

        print("${x*y} ${y-1}")
        isFirst = false
    }

    if (isFirst)
        print("0 0")

}
//1011
//应该有别的方法的。。。
import java.util.*

fun main(args: Array<String>) {
    val kin = Scanner(System.`in`)
    var count = kin.next().toInt()
    var a:Long
    var b:Long
    var c:Long
    for (i in 1..count){
        a = kin.next().toLong()
        b = kin.next().toLong()
        c = kin.next().toLong()

        println("Case #$i: ${a+b >c}")
        
    }

}

相关文章

网友评论

      本文标题:PAT 乙级(Basic Level)kotlin版 1007-

      本文链接:https://www.haomeiwen.com/subject/bhdhfktx.html