R2

GitHub跳转原题关系图返回列表

根据平均数公式 S=(R1+R2)/2,代入已知的 R1 和 S 计算 R2=2S-R1。

OJ: kattis

题目 ID: r2

难度:入门

标签:haskell

日期: 2026-07-09 21:46

题意

输入两个整数 R1R_1SS,输出 R2R_2。 其中 S=(R1+R2)/2S = (R_1 + R_2) / 2

思路

移项得 R2=2SR1R_2 = 2S - R_1,直接计算。

重点是用 Haskell 读取多个整数: words 按空格分割,map (read :: String -> Int) 转为整数, 类型注解是必须的,否则 GHC 无法推断 read 的目标类型。

代码

haskell
{-
 Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 rainboy的学习导航网站: https://idx.roj.ac.cn
 create_at: 2026-07-09 21:58
 update_at: 2026-07-09 21:58
-}
main = do 
    str <- getLine
    let [r1,s] = map read . words $ str :: [Int]
    print (2*s - r1)

复杂度

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

总结

Haskell 中读取多个整数并做算术运算的标准模式: getLinewordsmap read :: [Int] → 计算 → print