我认为根据题的要求应该这样:
#include<stdioh>
void decomp(int n,int k);
int a[100];
void decomp(int n,int k)
{
int i,j;
for(j=n;j>=1;j--)
{
a[k]=j;
if(n-a[k]==0&&a[k-1]>=a[k])
{
printf("%d=%d",a[0],a[1]);
for(i=2;i<=k;i++)
printf("+%d",a[i]);
printf("\n");
}
else
{
if(a[k-1]>=a[k]) decomp(n-a[k],k+1);
}
}
}
void main()
{
int m=4;
a[0]=m;
decomp(m,1);
}
第一个空白代码行应填:
PrintFactors( n );
很显然,在接收到用户输入的值后,要调用函数 PrintFactors() 来对数值进行因子分解。
第二个空白代码行应填:
first = 0; 或 first = false;
因为 first 变量是用来标示是否为第一个因子,在得到了第一个因子后,应将此变量设为“否”,以便指示稍后的输出因子之前先输出乘号
第三个空白代码行应填:
printf( "%d", factor ); 或 cout<< factor;
这是输出因子的值;
第四个空白代码行应填:
n /= factor;
这是用除以因子(除数)后的商来作为被除数,以继续循环,直到 n 不大于 1 时为止。
That's all So easy, 对吗?
以上就是关于C/C++程序填空 整数拆分全部的内容,包括:C/C++程序填空 整数拆分、编写程序将一个正整数分解为素因数的乘积(即素数分解) 有框架求补充 c语言、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)