首页 > 其他 > 详细

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

时间:2015-09-10 09:37:21      阅读:358      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!