算法1
递归
找到规律递归即可
时间复杂度
歪日不会分析,哪位大佬教教我
C++ 代码
#include<iostream>
#include<vector>
using namespace std;
void dfs(int n)
{
bool flag = false;
for (int i = 15; i >= 0;i--)
{
int u = n >> i & 1;
if(u)
{
if(flag)
cout << '+';
if(i==0)
cout << "2(0)";
else if(i==1)
cout << "2";
else
{
cout << "2(";
dfs(i);
cout << ")";
}
flag = true;
}
}
}
int main()
{
int n;
while(cin>>n)
{
dfs(n);
cout << endl;
}
return 0;
}
dfs基本上来说不用分析,要分析的话也很难,要看具体数据
谢谢
因为dfs里面有一些特殊的终止条件,所以搜索树不是整齐的,自然无法进行分析
这个的搜索树想要总结出一个规律来,是很难的