京东笔试——秋招笔试题

Posted fpga和matlab

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了京东笔试——秋招笔试题相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
using namespace std;

/*
题解:
	a^b = c^d,
	底数相等的情况: 
		1) 底数为1,即 1^b = 1^d 的情况:n * n 
		2) 底数不为1,即 a^b = a^b 的情况:(n - 1) * n
	底数不相等的情况: 
		拆成(i^x)^b = (i^y)^d,i^x <= n、j^y<=n 
		遍历i, 确定x和y的取值范围
		遍历x和y,取出x和y的最大公约数放到底数做i的指数
*/

const int MOD = 1000000007;

int gcd (int a, int b) 
    return (a % b == 0) ? b : gcd(b, a % b);


int main() 

	int n;
	scanf("%d", &n);
	// 注意下面这种方式写会出现int越界
	// long long ans = (long long)(n * n + (n - 1) * n) % MOD;
	long long ans = (long long) n * (2 * n - 1) % MOD;
	// 底数不相等的情况,即对于 (i^x)^b = (i^y)^d,讨论 x!=y 且 i>1
	set<int> s;
	for (int i = 2; i 

以上是关于京东笔试——秋招笔试题的主要内容,如果未能解决你的问题,请参考以下文章

秋招笔试题总结一

滴滴秋招笔试题(2016-09-18)

网易2017秋招笔试题3:最长公共子括号序列长度

阿里巴巴2021秋招笔试题20211119

TX2017秋招笔试题之素数对

美团2017秋招笔试题 拼凑钱币