請教大大幫忙
#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int main()
{
int x,i,t,k,a,flag;
scanf("%d",&x);
while(x--)
{
flag=0;
scanf("%d",&a);
for(i=0;i<sqrt(a);i++)
{
if(flag==1) break;
for(t=i;t<sqrt(a);t++)
{
if(flag==1) break;
for(k=t;k<=sqrt(a);k++)
if(i*i+t*t+k*k==a){
flag=1;break;}
}
}
if(flag==1)
cout<<i-1<<" "<<t-1<<" "<<k<<"\n";
else
cout<<"-1\n";
}
return 0;
}
請教大大幫忙
#include
#include
#include
using namespace std;
int main()
{
int x,i,t,k,a,flag;
scanf("%d",&x);
while(x--)
{
flag=0;
scanf("%d",&a);
for(i=0;i<sqrt(a);i++)
{
if(flag==1) break;
for(t=i;t<sqrt(a);t++)
{
if(flag==1) break;
for(k=t;k<=sqrt(a);k++)
if(i*i+t*t+k*k==a){
flag=1;break;}
}
}
if(flag==1)
cout<<i-1<<" "<<t-1<<" "<<k<<"\n";
else
cout<<"-1\n";
}
return 0;
}
要先建查詢表才能通過 TLE,大約 (0~225)*(0~225)*(0~225),
結果對應字串,例如: 1:'0 0 1', 2:'0 1 1', 5:'0 1 2' ...