一些递归程序
2015-04-15 21:24
169 查看
代码一:#include<iostream>
using namespace std;
void ten_to_two(int num);
int main()
{
int num=10;
ten_to_two(num);
return 0;
}
void ten_to_two(int num)
{
if(num!=0){
int m=num%2;
num=num/2;
ten_to_two(num);
cout<<m;
}
}
代码二:(二进制的递归算法)
#include <iostream>
using namespace std;
int leihe(int);
float Multiply(int);
int main()
{
int num=4;
cout<<leihe(100)<<endl;
cout<<"n!="<<Multiply(num)<<endl;
return 0;
}
int leihe(int num)//累加的递归
{
if(num!=0)
return leihe(num-1)+num;
}
float Multiply(int num)
{
//if(num<0) cout<<"错误";
if(num==1||num==0)
return 1;
else return (Multiply(num-1)*num);
}
代码三:(分解整数递归算法)
/*分解数字*/
#include <iostream>
using namespace std;
void resolve(int n);
int main()
{
int m=0;
cin>>m;
resolve(m);
return 0;
}
void resolve(int n)
{
if(n!=0){
int m=n%10;
n=n/10;
resolve(n);
cout<<m<<endl;
}
}
代码四:(分解质因子的递归算法)
#include <iostream>
using namespace std;
void prime_number(int num, int n)
{
if(num >=n)
{
while(num % n) n++; //找到一个质因数
num /= n; //除以这个质因数
if(num>=n)
cout<<n<<"*"; //打印这个质因数
else cout<<n;
prime_number(num,n);
}
else
cout<<endl;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=n;i<=m;i++){
cout<<i<<"=";
prime_number(i,2);
}
return 0;
}
(全文完)
using namespace std;
void ten_to_two(int num);
int main()
{
int num=10;
ten_to_two(num);
return 0;
}
void ten_to_two(int num)
{
if(num!=0){
int m=num%2;
num=num/2;
ten_to_two(num);
cout<<m;
}
}
代码二:(二进制的递归算法)
#include <iostream>
using namespace std;
int leihe(int);
float Multiply(int);
int main()
{
int num=4;
cout<<leihe(100)<<endl;
cout<<"n!="<<Multiply(num)<<endl;
return 0;
}
int leihe(int num)//累加的递归
{
if(num!=0)
return leihe(num-1)+num;
}
float Multiply(int num)
{
//if(num<0) cout<<"错误";
if(num==1||num==0)
return 1;
else return (Multiply(num-1)*num);
}
代码三:(分解整数递归算法)
/*分解数字*/
#include <iostream>
using namespace std;
void resolve(int n);
int main()
{
int m=0;
cin>>m;
resolve(m);
return 0;
}
void resolve(int n)
{
if(n!=0){
int m=n%10;
n=n/10;
resolve(n);
cout<<m<<endl;
}
}
代码四:(分解质因子的递归算法)
#include <iostream>
using namespace std;
void prime_number(int num, int n)
{
if(num >=n)
{
while(num % n) n++; //找到一个质因数
num /= n; //除以这个质因数
if(num>=n)
cout<<n<<"*"; //打印这个质因数
else cout<<n;
prime_number(num,n);
}
else
cout<<endl;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=n;i<=m;i++){
cout<<i<<"=";
prime_number(i,2);
}
return 0;
}
(全文完)
相关文章推荐
- 递归实现一些简单程序
- 递归的一些小程序
- 递归函数的练习,汉诺塔问题的程序实现(递归)
- 素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数
- 程序中需要常用的一些库
- 1231递归下降语法分析程序设计
- 1217 实验四 递归下降语法分析程序设计
- 1217 递归下降语法分析程序设计
- 程序命名的一些提示(转)
- C#遍历指定目录的递归(完美改进版+完整程序源码)
- 实验四递归下降语法分析程序设计
- 关于 双向循环链表 的一些基础程序
- 一些程序和工具
- 纯手工编写的PE可执行程序(修正原文的一些错误)
- 一些简化程序的东西,慢慢总结
- 了解VS2005为你的MFC程序做的一些事
- 总结C#中得到程序当前工作目录和执行目录的一些方法
- JAVA SE----程序开发的一些建议以及eclipse调试说明
- Android NDK:②第一个NDK程序(创建步骤&一些问题)
- 以前写的一些小程序总结