关于整数因子分解问题,如何用C++,递归来实现输出所有的情况(不是种数)? 20

关于整数因子分解问题:例如,当n=12时,要求输出:12=12;12=6*2;12=4*3;12=3*4;12=3*2*2;12=2*6;12=2*3*2;12=2*2*... 关于整数因子分解问题:
例如,当n=12 时,要求输出 :
12=12 ;
12=6*2 ;
12=4*3 ;
12=3*4 ;
12=3*2*2 ;
12=2*6 ;
12=2*3*2 ;
12=2*2*3 。

跪谢~~
展开
 我来答
度娘好淘气
2012-10-28 · 超过11用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:35.3万
展开全部
题目有些难度,我先简单提醒下你,一会把完善答案再代码写出来
①发现因子是逐渐减小的
②举例30=5*3*2,30%5==0,应该明白左边这个式子吧!30能被5整除,另外30/5等于6,而
6%3==0,6/3等于2,2%2==0,2/2等于1,也就是说用取余使得余数(假设为a)为0,然后
原数n运算n/=a,然后再取余知道n/=a之后n==0则退出循环
说的不是很明白,一会儿看代码吧,马上写出来
追问
等你哦~~
追答
我想了想,确实有难度
对于小点的数还好,大的数就无奈了
尝试自己编写函数,也尝试了for嵌套好几层

比如60
60=60
60=30*2
60=15*4
60=15*2*2
60=10*6
60=10*3*2
60=10*2*3
60=5*4*3
60=5*3*4
60=5*3*2*2
……

我再好好想想,写出来给你发,留个邮箱或QQ
如果你有了答案,也发给我哦
tencent_company@163.com
rich556677
2012-10-28 · TA获得超过2029个赞
知道小有建树答主
回答量:1365
采纳率:0%
帮助的人:972万
展开全部
看似简单呀,想了想也比较复杂呀。 没写完,不写了

void ys(int iSource, int iyz)
{
if (iSource == iyz)
printf("%d=%d\r\n", &iSource, &iSource);
bool yz = false;
for (int i = 2; i <= iyz / 2 1;i++)
{
if (iyz % i == 0)
{
yz = true;
if (iSource == iyz)
printf("%d=%d*%d\r\n", &iSource, &i, &(iyz / i));
else
printf("%d*%d", &i, &(iyz / i));

}

}
}
追问
难就难在输出....各种迷茫啊~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
极寒风暴111
2019-11-08
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
int GetFactorSplitSum(int n, char* prestr)
{

if(n == 1)
{
cout<<prestr<<endl;
return 1;
}

int sum = 0;
for(int i = n; i >= 2; i--)
if(n % i == 0)
{
char str[100];
sprintf(str,"%s*%d",prestr,i);
sum += GetFactorSplitSum(n / i, str);
}
return sum;
}
int main()
{
char str[100]={0};
cout<<GetFactorSplitSum(12,str)<<endl;
return 1;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhulihong_1990
2012-10-30
知道答主
回答量:30
采纳率:0%
帮助的人:4.9万
展开全部
223 跟 322 ,232有什么区别的,这是什么要求啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式