例:最大値を見つける
3つの整数が与えられた場合、それらの最大のものを見つけてください。
次の式が役立ちます:
max(a、b)=(a + b + abs(a-b))2
max(a、b)=(a + b + abs(a-b))2
入力形式
入力は1行を占め、3つの整数を含みます。
出力フォーマット
出力フォーマットは「Xeho maior」です。ここで、Xは3つの数値の最大値です。
データ範囲
1≤与えられた整数≤1091≤与えられた整数≤109
入力例:
7 14 106
出力例:
106 eh o maior
方法1:
直接ifステートメントの判断
#include <iostream>
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
int max;
if(a>b&&a>c)
max=a;
if(c>a&&c>b)
max=c;
if(b>a&&b>c)
max=b;
cout<<max<<" eh o maior";
return 0;
}
方法2:
タイトルに記載されている式を使用してください
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int a,b,c,max;
cin>>a>>b>>c;
max=(a+b+abs(a-b))/2;
max=(max+c+abs(max-c))/2;
cout<<max<<" eh o maior";
return 0;
}
この式が2つの数値の最大値を見つけることができる理由は次のとおりです。
単a> = b時間、max(a、b)=(a + b + ab)/ 2 = a;
当a <b時間、max(a、b)=(a + b + ba)/ 2 = b ;
実際、2つの最小値を見つけるための式もあります。
min(a、b)=(a + b-abs(ab))/ 2;
方法3:
C ++を使用して、2つの数値の最大値と最小値、つまりアルゴリズムヘッダーファイル内のmax()を具体的に見つけます
#include <iostream>
#include <algorithm>///一定要写这个头文件
using namespace std;
int main(){
int a,b,c;
int max1 = 0;
cin>>a>>b>>c;
max1 = max(a,b);///调用库函数max
max1 = max(max1,c);
cout<<max1<<" eh o maior"<<endl;
return 0;
}
注:
①max()とmin()は、個々のコンパイラー専用のアルゴリズムヘッダーファイルなしで実行できると言う人もいます。
②インターネット上の一部の人は、Niuke.comでオンラインプログラミングの質問をするときに、max関数を使用する問題があり、aが長い長いタイプの場合、max(a、0)などの小さなピットを見つけたと言います。エラーが報告され、0を0llに変更する必要があります。