1. 程式人生 > >XTU-OJ-迴圈2-勾股數

XTU-OJ-迴圈2-勾股數

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; }

提示

  1. 注意輸出None的條件,第一次忽略了a==i+b這個條件導致樣例輸出不正確。
  2. 正確運用break語句即可輸出最小勾股數。