京东 8.27 C++ 开发岗 笔试AC

感觉东哥缺兄弟了,希望大家都能上岸
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int tmp;
	while (cin>>tmp)
	{
		string s;
		s = to_string(tmp);
		reverse(s.begin(), s.end());
		tmp = stoi(s);
		string ans;
		while (tmp!=0)
		{
			ans = to_string(tmp % 5)+ans;
			tmp = tmp / 5;
		}
		cout << ans << endl;
	}
    return 0;
}
第二题题目要求答案要取余不要忘了,LeetCode518变形,原题是组合,这里是排列,对调两个for循环的位置即可
#include <bits/stdc++.h>

using namespace std;

int main()
{
    const int mod = 1000000007;
    int n, m;
    cin >> n >> m;
    vector<long long> nums;

    long long tmp;
    while (n--)
    {
        cin >> tmp;

        if (tmp > m)
        {
            continue;
        }
        nums.emplace_back(tmp);
    }
    vector<long long> ans(m + 1, 0);
    ans[0] = 1;
    for (int j = 1; j <= m; ++j) {
        for (int i = 0; i < nums.size(); i++)
        {
            if (j < nums[i])
            {
                continue;
            }
            ans[j] += ans[j - nums[i]] % mod;
        }
    }
    long long c = ans[m] % mod;
    cout << c << endl;
    return 0;
}




#京东##笔试题目#
全部评论
携代码前来学习! 第一题 0.82 @include <iostream> using namespace std; int main1() { long long num, tmp, reversedNum = 0, result = 0, reversedResult = 0; cin >> num; tmp = num; while (tmp > 0) { if (tmp % 10 != 0) { reversedNum = reversedNum * 10 + tmp % 10; } tmp /= 10; } tmp = reversedNum; while (tmp > 0) { result = result * 10 + tmp % 5; tmp /= 5; } tmp = result; while (tmp > 0) { reversedResult = reversedResult * 10 + tmp % 10; tmp /= 10; } cout << reversedResult; return 1; } 第二题 0.91 @include <iostream> using namespace std; int main2() { int n, m; cin >> n >> m; vector<int> cards(n); vector<long long> dp(m + 1, 0); for (int i = 0; i < n; i++) { int tmp; cin >> tmp; cards[i] = tmp; dp[tmp]++; } for (int i = 1; i <= m; i++) { for (auto c : cards) { if (i - c >= 1) { dp[i] += dp[i - c]; } } } cout << dp[m] % ((int)pow(10, 9) + 7); return 1; }
点赞
送花
回复 分享
发布于 2020-08-27 21:39

相关推荐

1 6 评论
分享
牛客网
牛客企业服务