PAT-B 1063 計算譜半徑

Enjoy_process發表於2019-02-25

                                                   PAT-B 1063 計算譜半徑 

                           https://pintia.cn/problem-sets/994805260223102976/problems/994805267860930560

 

 

題目

在數學中,矩陣的“譜半徑”是指其特徵值的模集合的上確界。換言之,對於給定的 n 個複數空間的特徵值 { a​1​​+b​1​​i,⋯,a​n​​+b​n​​i },它們的模為實部與虛部的平方和的開方,而“譜半徑”就是最大模。現在給定一些複數空間的特徵值,請你計算並輸出這些特徵值的譜半徑。

輸入

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

輸出

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

樣例輸入

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

樣例輸出

4.24

分析

先不開方,最後才進行開方。

C++程式

#include<iostream>
#include<algorithm>
#include<cmath>

using namespace std;

int main()
{
	int n;
	double a,b,ans=0;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%lf%lf",&a,&b);//輸入實部和虛部
		ans=max(ans,a*a+b*b); 
	}
	printf("%.2lf\n",sqrt(ans));//最後才進行開方
	return 0; 
}

 

相關文章