递归打印输出一个整数的所有因式分解
2014-09-30 14:34
465 查看
// rPrint.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
int nVal=0;//全局变量记录输入的整数值
vector<int> vect;
vector<int>::iterator iter;
void rPrint(int n)
{
if(n==0)
{
return;
}
if(n==1)
{
cout<<nVal<<"=";
for(iter=vect.begin();iter!=vect.end();iter++)
{
cout<<*iter<<"*";
}
cout<<1<<" ";
return;
}
for (int i=2;i<=n;i++)
{
if (n%i==0)
{
vect.push_back(i);
rPrint(n/i);
vect.pop_back();
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n=0;
cin>>n;
nVal=n;
rPrint(n);
return 0;
}
//
#include "stdafx.h"
#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
int nVal=0;//全局变量记录输入的整数值
vector<int> vect;
vector<int>::iterator iter;
void rPrint(int n)
{
if(n==0)
{
return;
}
if(n==1)
{
cout<<nVal<<"=";
for(iter=vect.begin();iter!=vect.end();iter++)
{
cout<<*iter<<"*";
}
cout<<1<<" ";
return;
}
for (int i=2;i<=n;i++)
{
if (n%i==0)
{
vect.push_back(i);
rPrint(n/i);
vect.pop_back();
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int n=0;
cin>>n;
nVal=n;
rPrint(n);
return 0;
}
相关文章推荐
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- 整数因子分解:计算一个整数所有的分解式(递归实现)
- 每天学习一算法系列(6) (输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径)
- 因式分解一个正整数(递归方法)
- 有一个整数数组,然后有一个数m,要找到整数数组中,所有和等于m的组合,并输出。
- 运用递归给定一个int型的整数,倒序输出他的每一位上的数字
- 将一个整数拆分成不相同的正整数之和,打印出所有的组合
- 将一个整数分解质因数并输出
- 递归问题之一:给定一字符串,输出字符串中所有字符子串的各种组合形式,长度为一个字符到字符串的长度,忽略排序
- 将一个整数逆序输出,分别给出递归和非递归算法
- 输出和为一个给定整数的所有组合
- 判断是否为2的幂||输出一个整数二进制格式中1的个数 非循环非递归实现
- 一个打印输入字符串所有排列的递归程序
- 递归:打印一个序列先入栈再出栈的所有可能
- 输入一个正整数,若该数能用几个连续正整数之和表示,则输出所有可能的正整数序列
- 题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
- 用递归反向输出一个整数
- 面试题:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。
- 输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。