1. 程式人生 > 實用技巧 >1063 計算譜半徑 (20分)

1063 計算譜半徑 (20分)

題目

在數學中,矩陣的“譜半徑”是指其特徵值的模集合的上確界。換言之,對於給定的 n 個複數空間的特徵值 { a
1+b2i,⋯,an+bni},它們的模為實部與虛部的平方和的開方,而“譜半徑”就是最大模。

現在給定一些複數空間的特徵值,請你計算並輸出這些特徵值的譜半徑。

輸入格式

輸入第一行給出正整數 N(≤ 10 000)是輸入的特徵值的個數。隨後 N 行,每行給出 1 個特徵值的實部和虛部,其間以空格分隔。注意:題目保證實部和虛部均為絕對值不超過 1000 的整數。

輸出格式

在一行中輸出譜半徑,四捨五入保留小數點後 2 位。

輸入樣例

5
0 1
2 0
-1 0
3 3
0 -3

輸出樣例

4.24	

解析

  對於每對輸入的資料a,b,模為sqrt(a2 + a2),儲存下最大的輸出即可

答案

#include<iostream>
#include<math.h>
#include<stdio.h>
#include<algorithm>

using namespace std;

int main(){
    int N,a,b;
    double max = 0;
    cin >> N;
    while(N--){
        cin >> a >> b;
        double sum = sqrt(a*a + b*b);
        if(sum > max) max = sum;
    }
    printf("%.2f",max);
}