求给定数等于最少的几个完全平方数之和
来源:互联网 发布:外国人 中国微信 淘宝 编辑:程序博客网 时间:2024/05/01 23:21
1.数据数量少,单个数据大小不限
int MixFuntion(int n){ int i = sqrt(n); if (i*i == n) return 1; int minLen = INT_MAX; for(;i*i >= n/2;i--) { int len = 1 + MinExpressionInteger(n - i*i); if (minLen > len) minLen = len; } return minLen;}
先计算其中最大的一个平方数,如果等于i就返回1。
之后用递归的方式算出最大平方数为k*k时的len,在与最大平方数为其他值的情况进行比较,得出minlen
i
┌───┬──────┬───────────────┐
│ │ │ k*k │
└───┴──────┴───────────────┘
2数据数量大,单个数据小
const int MAX = 100000;int MinNum[MAX+1] = {0};int MixFuntion(int n ,int &mixLen){ if(n > MAX) return 0; int i = sqrt(n); if(i*i == n) { MinNum[n] = 1; return 1; } int flag = 0; for(;i*i >= n/2;i--) { int num = n-i*i; if(!MinNum[num]) MixFuntion(num); if(!MinNum[flag] || MinNum[flag]>MinNum[num]) flag = num; } MinNum[n] = MinNum[flag] + 1; mixLen = MinNum[n]; return 1;}
方法是一样的,只不过拿了个数组记了一下。。。
0 0
- 求给定数等于最少的几个完全平方数之和
- 求给定数等于最少的几个完全平方数之和
- python 求8位各不相同的整数,1357位之和等于2468位之和,且为完全平方数
- 数组两个数之和,等于给定数
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- 给定正整数b,求最大的整数a,满足a*(a+b) 为完全平方数
- 查找两数之和等于给定值
- 【算法题】寻找最少完全平方数
- Java 求整数各位数平方之和
- 给定几个数,求最大值
- 平方等于立方数
- 算法:php求几个数字之和刚好大于或等于某一个给定的值
- 求类似aabb形式的完全平方数
- 求A到B之间完全平方数的个数
- 求整数的最小完全平方数个数
- java求n以内的完全数。所谓的完全数即如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”
- 完全平方数的个数
- 207_intent启动相册
- 多线程性能及效率问题
- 关于strcpy()的一些小问题
- Linux编程基础——GDB(设置断点)
- vim加入taglist插件使用方法,设置括号自动补全
- 求给定数等于最少的几个完全平方数之和
- 浙大PAT甲级 1074
- 异常org.hibernate.QueryException: could not resolve property的原因
- URL组成介绍
- 数字填空题
- 博客文章同步到新的个人网站:http://114.215.157.129:8081/RobotBlog/index.jsp
- linux同步ntpd服务器时间方式
- 获得文本中最长的一行并打印
- [完]机器学习实战 第二章 k-近邻算法(k Nearest Neighbor)