代码改变世界

Sicily/2499. 平方数

2011-07-01 02:21  Min·zc  阅读(328)  评论(0编辑  收藏  举报
 1 #include <iostream>
 2 #include <memory.h>
 3 using namespace std;
 4 int nu[60001];
 5 int sq[250];
 6 void ini()
 7 {
 8         sq[0]=1;
 9         memset(nu,0,sizeof(nu));
10         for(int i=1;i*i<=60000;i++)
11         {
12                 sq[sq[0]++]=i*i;
13         }
14         for(int i=1;i<=sq[0];i++)
15                 for(int j=sq[i];j<=60000;j++)
16                         if((nu[j]>nu[j-sq[i]]+1&&nu[j]!=0)||(nu[j]==0))
17                                 nu[j]=nu[j-sq[i]]+1;
18                 
19 }
20 int main()
21 {
22         ini();
23         int t;
24         cin>>t;
25         while(t--)
26         {
27                 int n;
28                 cin>>n;
29                 cout<<nu[n]<<endl;
30         }
31 }