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多种语言分析,解答。

全部评论

相关推荐

04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务