2023 腾讯音乐笔试题 0906
笔试时间:2023年9月6日 秋招
第一题
题目
小红定义一个数为“完美数”,当且仅当该数仅有一个非零数字。例如 5000,4,1,10,200都是完美数。小红拿到了一个大小为n的数组,她希望选择两个元素,满足它们的乘积为完美数。小红想知道,共有多少种不同的取法?
数据范围:
1<=n<=2000
1<=ai<=10^9
样例输入
[25,2,1,16]
样例输出
3
说明:25* 2=50,2* 1=2,25*16=400
参考题解
直接暴力就能过。
C++:[此代码未进行大量数据的测试,仅供参考]
class Solution { public: using ll = long long; int perfectPair(vector<int>& arr) { int n = arr.size(); int ans = 0; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { ll m = ll(arr[i]) * arr[j]; string s = to_string(m); bool ok = true; for (int k = 1; k < s.size(); ++k) { if (s[k] != '0') { ok = false; break; } } ans += ok; } } return ans; } };
Java:[此代码未进行大量数据的测试,仅供参考]
import java.util.List; class Solution { public int perfectPair(List<Integer> arr) { int n = arr.size(); int ans = 0; for (int i = 0; i < n; ++i) { for (int j = i + 1; j < n; ++j) { long m = (long) arr.get(i) * arr.get(j); String s = String.valueOf(m); boolean ok = true; for (int k = 1; k < s.length(); ++k) { if (s.charAt(k) != '0') { ok = false; break; } } ans += ok ? 1 : 0; } }
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。