[R4A] 数位交换

  • 难度 入门
  • 时限 1s
  • 空限 512m
  • 模拟

思路

设百位、十位、个位分别为 aabbcc,即 a=X/100a = X / 100b=(Xa×100)/10b = (X - a \times 100) / 10c=X%10c = X \% 10

交换个位与百位后得到 c×100+b×10+ac \times 100 + b \times 10 + a。由于是作为整数输出,前导 00 会被自然省略(如 65056650 \rightarrow 56),因此不需要特殊处理。

复杂度:时间 O(1)O(1),空间 O(1)O(1)

仓颉实现

import std.convert.*
import std.env.*

main() {
    let reader = getStdIn()
    let x = Int64.parse(reader.readln().getOrThrow())
    let a = x / 100
    let b = (x - a * 100) / 10
    let c = x % 10
    println(a + b * 10 + c * 100)
}