用全部N(N<=10)个0-9的数字组成一个“有效”整数(即没有前置0的整数),求这些组成的数中能被K(0<K<10^10)整除的最小数字。-笔试面试资料

这是qklbishe.com第9322 篇笔试面试资料
提供答案分析,通过本文《用全部N(N<=10)个0-9的数字组成一个“有效”整数(即没有前置0的整数),求这些组成的数中能被K(0<K<10^10)整除的最小数字。-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:

用全部N(N<=10)个0-9的数字组成一个“有效”整数(即没有前置0的整数),求这些组成的数中能被K(0<K<10^10)整除的最小数字。
用全部N(N&lt;=10)个0-9的数字组成一个“有效”整数(即没有前置0的整数),求这些组成的数中能被K(0&lt;K&lt;10^10)整除的最小数字。 和兆姜
#include <iostream> #include <vector> #include <algorithm> using namespace std;  typedef long long ll; ll n, k; vector<int> nums; vector<bool> vis;  ll dfs(int use, ll num) {     if (use == n) {         if (num % k == 0) return num;         else return -1;     }     for (int i = 0; i < n; i++) {         if (vis[i] == true) continue;         if (n != 1 && num == 0 && nums[i] == 0) continue;         vis[i] = true;         ll res = dfs(use + 1, num * 10 + nums[i]);         vis[i] = false;         if (res != -1) return res;     }     return -1; }  void solve() {     cin >> n >> k;     nums.assign(n, 0);     vis.assign(n, false);     for (auto& num : nums) cin >> num;     sort(nums.begin(), nums.end());     ll res = dfs(0, 0);     cout << res << endl; }   int main() {     int n = 1;     // cin >> n     while(n--) solve();     return 0; }

2021-04-11 17:35:24 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 用全部N(N<=10)个0-9的数字组成一个“有效”整数(即没有前置0的整数),求这些组成的数中能被K(0<K<10^10)整除的最小数字。-笔试面试资料

提供最优质的资源集合

立即查看 了解详情