---
# System prepended metadata

title: ZERO JUDGE(C++)

---

# ZERO JUDGE(C++)題解
## [b557. 直角三角形](https://zerojudge.tw/ShowProblem?problemid=b557)
**解題思路**
- 先照題目格式輸入
- `sort`對陣列由小到大排列
- 用兩層`for`迴圈窮舉所有可能
- 備:`t`紀錄直角三角形總數
```cpp=
#include <iostream>
#include<algorithm>
using namespace std;

int main() {
	int a,b,c,d,i,j,k,l,m,t=0;
	cin>>a;
	for(i=0;i<a;i++)
	{
		t=0;
		cin>>b;
		int s[b];
		for(j=0;j<b;j++)
		{
			cin>>s[j];
			
		}
		sort(s,s+b); //排大小
		for(k=0;k<b;k++)
		{
			for(l=k+1;l<b;l++)
			{
				for(m=l+1;m<b;m++)
				{
					if(s[k]*s[k]+s[l]*s[l]==s[m]*s[m])
					{
						t++;
					}
				}
			}
		}
		cout<<t<<endl;
	}
}
```
## [a005. Eva 的回家作業](https://zerojudge.tw/ShowProblem?problemid=a005)
**解題思路**
- 第一個`if`判斷公比是否為1或公差為0
- 第二個`if`判斷第一、二項之差是否等於第二、三項之差，此行判斷等差數列
- 第三個`if`非以上敘述則皆為等比數列
- 
```cpp=
#include <iostream>
#include<algorithm>
using namespace std;

int main() {
	int a,i,s[4];
	cin>>a;
	for(i=0;i<a;i++)
	{
		cin>>s[0]>>s[1]>>s[2]>>s[3];
		if(s[0]==s[1]==s[2])
		{
			cout<<s[0]<<' '<<s[1]<<' '<<s[2]<<' '<<s[3]<<' '<<s[0]<<endl;
		}
		else if(s[0]-s[1]==s[1]-s[2])
		{
			cout<<s[0]<<' '<<s[1]<<' '<<s[2]<<' '<<s[3]<<' '<<(s[3]+(s[1]-s[0]))<<endl;
		}
		else
		{
			cout<<s[0]<<' '<<s[1]<<' '<<s[2]<<' '<<s[3]<<' '<<(s[3]*(s[1]/s[0]))<<endl;
		}
	}
}
```
