稍稍注意一下 int 和 double 的混合运算,基本功不扎实真的很致命。
这题的确很水……就是解一个方程组并限制一下约束条件而已。
{x=a+b y=a+c z=y+b+c
约束条件是:
{a>0 b>0 c>0
由于b、c是无关变量,我们希望把它们化成别的变量,即:
{a>0 x>a y>a
满足上面这组约束条件时,输出:
a=y+x−z2
下面是 C 语言代码:
#include <stdio.h> int main() { int x, y, z; scanf("%d%d%d", &x, &y, &z); double a = y + (x - z) / 2.0; if (a > 0 && x > a && y > a) printf("%lf\n", a); else printf("Wrong\n"); }
顺便码一个rust:
fn main() { use std::io; use std::io::Read; let mut buf = String::new(); io::stdin().lock().read_to_string(&mut buf).unwrap(); let mut buf = buf.split_whitespace(); let x: f64 = buf.next().unwrap().parse().unwrap(); let y: f64 = buf.next().unwrap().parse().unwrap(); let z: f64 = buf.next().unwrap().parse().unwrap(); let a = y + (x - z) / 2.0; if a > 0.0 && x > a && y > a { println!("{}", a); } else { println!("Wrong"); } }
吐槽一下rust的异常安全机制……在OJ题的方面上写起来就啰嗦许多。
坑爹呢。。。没想到是大写的W!害我提交了好几次!!!
稍稍注意一下 int 和 double 的混合运算,基本功不扎实真的很致命。
这题的确很水……就是解一个方程组并限制一下约束条件而已。
约束条件是:
由于b、c是无关变量,我们希望把它们化成别的变量,即:
满足上面这组约束条件时,输出:
下面是 C 语言代码:
顺便码一个rust:
吐槽一下rust的异常安全机制……在OJ题的方面上写起来就啰嗦许多。
坑爹呢。。。没想到是大写的W!害我提交了好几次!!!