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