腾讯笔试题--递归编程(2)
题目:
对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个?
#include <iostream>using namespace std;int count=0;void fun(int num,int step){if(num<=0)return;if(step==1){cout<<num<<" ";++count;if(count%10==0)cout<<endl;return;}else{if((num-1)%2==1) fun(num-1,step-1);fun(num*2,step-1);}}void main(){fun(1,9);cout<<endl<<endl<<count<<endl;system("pause");}