感谢 微信号---code4god 这是他们的微信平台 每日会提供一道算法题 我只是个搬运工
我们每一天都应该比昨天更强一点
观察下列式子:
12 = 12*1
12 = 6*2
12 = 4*3
12 = 3*4
12 =
3*2*2
12 = 2*6
12 = 2*3*2
12 = 2*2*3
对于给定的n 计算n公有多少种不同的分解式?
1 #include <iostream>
2 using namespace std;
3
4 int cnt;//记录拆分次数
5 void slove( int n )
6 {
7 if( 1==n )
8 {
9 cnt++;
10 return;
11 }
12 else
13 {
14 for( int i = n ; i>=2 ; i-- )
15 {
16 if( n%i==0 )
17 {
18 slove(n/i);
19 }
20 }
21 }
22 }
23
24 int main()
25 {
26 int n;
27 while( ~scanf("%d",&n) )
28 {
29 cnt = 0;
30 slove(n);
31 printf( "%d\n",cnt );
32 }
33 return 0;
34 }
话说 还可以用 所谓的 “备忘录” 可惜目前我实在太渣 自己无法实现 如若有大神能实现 希望能在下方贴出你的代码
大家一起学习!
一天一道算法题---5.24.--递归
时间: 2024-11-03 22:10:40