|
- #include<iostream>
- using namespace std;
- int a[25],tot;
- bool b[10];
- int main()
- {
- for(int i=13;i<=31;i++)
- {
- int sqrtn=i*i;
- int pp=sqrtn/100,qq=(sqrtn/10)%10,rr=sqrtn%10;//pp,qq,rr为第一、二、三位
- if(pp!=qq&&qq!=rr&&rr!=pp)a[++tot]=sqrtn;
- }
- for(int i=1;i<=tot-2;i++)
- {
- b[a[i]%10]=b[a[i]/100]=b[(a[i]/10)%10]=1;
- for(int j=i+1;j<=tot-1;j++)
- {
- int p=a[j]/100,q=(a[j]/10)%10,r=a[j]%10;
- if(b[p]==0&&b[q]==0&&b[r]==0)
- {
- b[p]=b[q]=b[r]=1;
- for(int k=j+1;k<=tot;k++)
- {
- int ppp=a[k]/100,qqq=(a[k]/10)%10,rrr=a[k]%10;
- if(b[ppp]==0&&b[qqq]==0&&b[rrr]==0) cout<<a[i]<<" "<<a[j]<<" "<<a[k]<<endl;
- }
- b[p]=b[q]=b[r]=0;
- }
- }
- b[a[i]%10]=b[a[i]/100]=b[(a[i]/10)%10]=0;
- }
- return 0;
- }
复制代码
第一题 |
|