同程旅行 0924 笔试:乘法原理 + 模拟

25 道选择+两道编程

题1:排列+乘法原理

[1,m]中所有的奇数可以自由放到 n 数组中的奇数位上,同理偶数自由放到偶数位上。分别求出两种方案数再乘法原理。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        new Main().run();
    }
    int mod = 1000000007;
    public void run() {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(), m = sc.nextInt();

        int oddCnt = m / 2;
        int evenCnt = m / 2;
        if(m % 2 != 0) oddCnt++;   // m 为奇数的话,奇数就多一个

        int oddPosCnt = n / 2;  // 奇数的位置个数
        int evenPosCnt = n / 2;
        if(n % 2 != 0) oddPosCnt++;

        long odd = qmi(oddCnt, oddPosCnt);
        long even = qmi(evenCnt, evenPosCnt);

        long ans = (odd * even) % mod;
        System.out.println(ans);
    }

    public long qmi(long a, long b){
        long res = 1;
        while (b > 0) {
            if((b & 1) == 1) res = res * a % mod;
            a = a * a % mod; 
            b >>= 1;
        }
        return res;
    }
}

题 2:模拟

import java.util.HashSet;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        new Main().run();
    }

    // 直接模拟判断就行
    public void run() {
        Scanner sc = new Scanner(System.in);
        int t = Integer.parseInt(sc.nextLine());

        HashSet<String> hasRegistry = new HashSet<>();  // 已经注册过的用户名

        while (t-- > 0) {
            String s = sc.nextLine();
            int n = s.length();

            // 如果长度不合法
            if (n < 6 || n > 12) {
                System.out.println("illegal length");
                continue;
            }

            // 已经注册过
            if (hasRegistry.contains(s)) {
                System.out.println("acount existed");
                continue;
            }

            boolean flag = false;   // 是否遇到数字
            for (int i = 0; i < n; i++) {
                // 遇到数字,草率了,遇到非大小写字母的字符就算
                char c = s.charAt(i);
                if (!((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))) {
                    System.out.println("illegal charactor");
                    flag = true;
                    break;
                }
            }
            // 符合要求
            if (!flag) {
                hasRegistry.add(s);
                System.out.println("registration complete");
            }

        }
    }
}

/**
 * registration complete
 * illegal length
 * acount existed
 * illegal charactor
 */

#牛客创作赏金赛##软件开发笔面经##笔试##同程求职进展汇总#
后端开发笔面经 文章被收录于专栏

主要收录一部分我的笔试面试经历文章,欢迎订阅。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-19 14:46
和女友两个人马上毕业,现在我在鹅实习995,周六日偶尔也去北京;她在北京金融007,经常忙到后半夜,周末也没啥休息机会两个人现在都不咋聊天了,一句话隔半小时甚至半天才回。&nbsp;她是个很优秀的妹子,工作也很努力,是值得学习一辈子的人。我在努力工作求转正,即便不行至少赚到了一段不错的实习经历。已经异地了半年,接下来可能还会持续是这个状态。我们都算是对方重要的人,只是感觉看上去不是很有未来的样子。希望牛友们给点的鼓励
梦旅奇缘:很难。异地首先就已经很难了,加上妹子是金融行业,忙碌高压,对情感需求很高,而且见惯纸醉金迷,你的很多优势在她那里可能就不算什么了。这种情况下,在她们那里遇到一个能及时照顾她的人,即使那人可能很多条件不如你,你也有可能被分手。 说白了,两个卷王就不太适合在一起。因为卷王最大的优势,在另一个卷王那里就不算优势了。
点赞 评论 收藏
分享
评论
3
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务