最近练习的一些算法(持续更新)
来源:互联网 发布:依存度算法 编辑:程序博客网 时间:2024/06/05 06:05
题目1:给出一个正整数n,把n写成若干正整数相加,要求给出所有写法,比如n=4,输出
4=1+1+1+1
4=1+1+2
4=1+3
4=2+2
4=4
简单的递归算法:
#include<iostream>#include<vector>using namespace std;int inputNumber;void printResult(vector<int>& resultVector){cout<<inputNumber<<"="<<resultVector[0];for(int i=1;i<resultVector.size();i++)cout<<"+"<<resultVector[i];cout<<endl;}void composite(int number,int preFactor,vector<int>& resultVector){if(number==0){printResult(resultVector);return;}if(number<preFactor)return;for(int i=preFactor;i<=number;i++){resultVector.push_back(i);composite(number-i,i,resultVector);resultVector.pop_back();}}int main(){vector<int> resultVector;while(cin>>inputNumber){if(inputNumber==0) break;composite(inputNumber,1,resultVector);}}
题目变种:给出一个正整数N,把它写成若干整数相乘的形式:
解法同上:
#include<iostream>#include<vector>using namespace std;int inputNumber;void printResult(vector<int>& resultVector){if(resultVector.size()==1)cout<<inputNumber<<"=1*"<<resultVector[0];else{cout<<inputNumber<<"="<<resultVector[0];for(int i=1;i<resultVector.size();i++)cout<<"*"<<resultVector[i];}cout<<endl;}void composite(int number,int preFactor,vector<int>& resultVector){if(number==1){printResult(resultVector);return;}if(number<preFactor)return;for(int i=preFactor;i<=number;i++)if(number%i==0){resultVector.push_back(i);composite(number/i,i,resultVector);resultVector.pop_back();}}int main(){vector<int> resultVector;while(cin>>inputNumber){if(inputNumber==0) break;composite(inputNumber,2,resultVector);}}
- 最近练习的一些算法(持续更新)
- 最近用到的一些sql命令(持续更新)
- 一些基础算法的模板(持续更新)
- 一些小的算法(持续更新…………)
- STL中常用的一些算法函数[持续更新]
- 搜集一些有趣的排序算法,持续更新
- 一些看过的算法教程(持续更新)
- 最近遇到的一些笔试面试题目(持续更新中。。)
- 最近在ubunto下搞android遇到的一些坑,持续更新
- 一些小算法(持续更新)
- STL的算法中,一些很简练的算法——持续更新
- Cocos2dx练习,持续更新。
- 使用Vista的一些问题[持续更新]
- JAVA的一些基础(持续更新)
- 一些有意思的网站(持续更新)
- 一些有用的经验 持续更新
- 一些CV的博客[持续更新]
- 自己做的一些题 , 持续更新
- Android4.0-Fragment框架实现方式剖析(二)
- 非静态的字段、方法或属性要求对象引用
- 完美解决窃取ssh private key问题
- 好的编程学习资源
- 五分钟讲清楚UML
- 最近练习的一些算法(持续更新)
- poj 1470(LCA RE)
- until cancel的意义和使用场景
- hdu1828poj1177线段树周长并
- Flex服务器swf 更新后,客户端不需要清空缓存即可查看最新版本
- POJ3725-I know the k-th integer
- K&R的名著:<C程序设计语言>小程序总结2
- Ubuntu下配置 Eclipse 编译、开发 Hadoop(MapReduce)源代码
- Android多媒体开发【6】-- 播放器的基本模型