这题是用动态规划来做么?
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);
}