最大値を見つける(3つの方法)

例:最大値を見つける

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に変更する必要があります。

おすすめ

転載: blog.csdn.net/qq_46009744/article/details/108583055