这道题我人都吐了
用PrintWriter输出的话 测试点0会失败
直接用println就行
但是其他的测试点可以正常通过
//1031
import java.io.BufferedReader
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.io.PrintWriter
fun main(args: Array<String>) {
val kin = BufferedReader(InputStreamReader(System.`in`))
val kout = PrintWriter(OutputStreamWriter(System.out))
val count = kin.readLine().toInt()
val weight = arrayOf(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)//权重
val weight2 = arrayOf('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2')//对应
var w: Int
var flag = true
var printed: Boolean
for (i in 0 until count) {
val id = kin.readLine().toCharArray()
printed = false
w = 0
for (j in 0..16) {
if (id[j] - '0' > 9 || id[j] - '0' < 0) {//非数字
printed = true
flag = false
println(id)//用PrintWriter输出 测试点0会失败
break
} else
w += ((id[j] - '0') * weight[j])
}
w %= 11
if (weight2[w] != id.last() && !printed) {
flag = false
println(id)//用PrintWriter输出 测试点0会失败
}
}
if (flag)
println("All passed")//用PrintWriter输出 测试点0会失败
}
然后我不信邪,又用PrintWriter输出了一遍
这次竟然过了。。。?