码迷,mamicode.com
首页 > 其他好文 > 详细

一个数n的最少可以由多少个数的平方和组成

时间:2015-09-10 09:39:06      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

 1 bool is_sqrt(int n){
 2     for(int i=1;i<=sqrt(double(n));i++){
 3         if(i*i == n)
 4             return true;
 5     }
 6     return false;
 7 }
 8 int pow_number(int mp){
 9     int* a = new int[mp+1];
10     a[0] = 1;
11     a[1] = 1;
12     if(mp==1) return 1;
13     if(is_sqrt(mp))return 1;
14     //int min = 0x8FFFFFFF;
15     for(int i=2;i<=mp;++i)
16     {
17         if(is_sqrt(i)){
18             a[i]=1;
19             continue;
20         }
21         a[i] = a[1]+a[i-1];
22         for(int j=i-1;j>=i/2;--j){
23             a[i] = a[i]<(a[j]+a[i-j])?a[i]:(a[j]+a[i-j]);
24         }
25     }
26     int temp = a[mp];
27     delete[] a;
28     return temp;
29 }

利用动态规划。

一个数n的最少可以由多少个数的平方和组成

标签:

原文地址:http://www.cnblogs.com/zhang-wen/p/4796719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!