一天一道算法题---5.24.--递归
感谢 微信号---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公有多少种不同的分解式?
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }
话说 还可以用 所谓的 “备忘录” 可惜目前我实在太渣 自己无法实现 如若有大神能实现 希望能在下方贴出你的代码 大家一起学习!
just follow your heart