XTU-OJ-迴圈2-勾股數
阿新 • • 發佈:2018-12-19
Description
勾股數 題目描述
勾股數是指滿足a2+b2=c2的正整數,比如最有名的“勾三股四弦五”。 現在給你兩個正整數,請問是否存在另外一個正整數,使其成為“勾股數”? 輸入
第一行是一個整數K,表示樣例的個數。 以後每行一個樣例,為兩個整數x,y,(1≤x,y≤10000)。 輸出
每行輸出一個樣例的結果。如果不能構成勾股數,輸出“None”,如果存在多個,輸出最小的那個。 樣例輸入
3 3 4 2 6 12 13
樣例輸出
5 None 5
#include<iostream>
using namespace std;
int main()
{
int k,a,b;
cin>> k;
while(k--)
{
cin>>a>>b;
if(a<b)
{
int c;
c=a;
a=b;
b=c;
}
for(int i=a-b+1;i<=a+b;i++)
{
int i2=i*i,a2=a*a,b2=b*b;
if(i2==a2+b2||a2==i2+b2||b2==a2+i2)
{
cout<<i<<endl;
break;
}
if(i==a+b||a==i+b) cout<<"None"<< endl;
}
}
return 0;
}
提示
- 注意輸出None的條件,第一次忽略了a==i+b這個條件導致樣例輸出不正確。
- 正確運用break語句即可輸出最小勾股數。