这题是用动态规划来做么?
5.public void printFactors(int n)example:
input:12
output:
1 * 12
2 * 6
2 * 2 * 3
3 * 4
input:24
output:
1 * 32
2 * 16
2 * 2 * 8
2 * 2 * 2 * 4
2 * 2 * 2 * 2 * 2
2 * 4 * 4
4 * 8
#include <stdio.h> void ff(int a[],int n,int p) { //递归显示所有因数分解算式 int i; i=p>0?1:0; //第一次显示因数1 for(;i<p;i++)printf("%d * ",a[i]); printf("%d * %d\n",a[i],n); //显示算式 if(a[p]*a[p]>n)return; for(i=2;i*i<=n;i++) { if(!(n%i)) { a[++p]=i; //存储因数 ff(a,n/i,p); //递归调用 p--; //回溯,剪枝 } } } void main() { int n,a[100]; scanf("%d",&n); a[0]=1; ff(a,n,0); }
[此贴子已经被作者于2016-2-21 12:14编辑过]