本文主要是介绍每日OJ_牛客_求和(递归深搜),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
牛客_求和(递归深搜)
解析代码
牛客_求和(递归深搜)
求和_好未来笔试题_牛客网
解析代码
递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;int main()
{int a = 0;while(cin >> a){cout << a << " = ";vector<int> arr;for(int i = 2; i <= sqrt(a); ++i){while(a % i == 0){// cout << i << " * ";arr.push_back(i);a /= i;}}if(a != 1) // 说明是素数{// cout << a << " * ";arr.push_back(a);}int sz = arr.size();for(int i = 0; i < sz; ++i){cout << arr[i];if(i != sz - 1)cout << " * ";}cout << endl;}return 0;
}
这篇关于每日OJ_牛客_求和(递归深搜)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!