题目地址:
https://www.acwing.com/problem/content/616/
给定三个整数,请你找出它们中的最大值。下列公式可能对你有所帮助: max ( a , b ) = a + b + ∣ a − b ∣ 2 \max(a,b)=\frac{a+b+|a−b|}{2} max(a,b)=2a+b+∣a−b∣。
输入格式:
输入占一行,包含三个整数。
输出格式:
输出格式为X eh o maior
,其中
X
X
X为三个数中的最大值。
数据范围:
1
≤
给
定
整
数
≤
1
0
9
1≤给定整数≤10^9
1≤给定整数≤109
代码如下:
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
int t = (a + b + abs(a - b)) / 2;
printf("%d eh o maior\n", (t + c + abs(t - c)) / 2);
return 0;
}
时空复杂度 O ( 1 ) O(1) O(1)。