京东笔试代码分享

第一次,无限序列AC
#include<iostream>
#include<math.h>
#include<vector>
using namespace std;
int main(){
    double n;
    cin >> n;
    int res = 0;
    double tmp = n * 2 + 0.25;
    tmp = sqrt(tmp);
    tmp -= 0.5;
    res = ceil(tmp);
    cout << res<< endl;
    return 0;
}

第二题,神奇数就 过了50,求大佬
#include<iostream>
#include<vector>
#include<algorithm>
#include<bitset>
#include<numeric>
using namespace std;
bool ismag(vector<int> &vec){
    bitset<5001> bits(1);
    int sum = accumulate(vec.begin(), vec.end(), 0);
    for (auto n : vec)
        bits |= bits << n;
    return !(sum & 1) && bits[sum >> 1];
}
bool ismagical(int num){
    if (num == 0)
        return true;
    vector<int> vec;
    while (num != 0){
        vec.push_back(num % 10);
        num /= 10;
    }
    if (vec.size() == 1)
        return false;
    return ismag(vec);
}
int main(){
    int m, n;
    cin >> m >> n;
    int res = 0;
    for (int i = m; i <= n;i++)
    if (ismagical(i))
        res++;
    cout << res << endl;
    return 0;
}




全部评论
直接用求根公式也可以
点赞 回复 分享
发布于 2017-09-09 20:25
第一题竟然能过,不是输入是无限序列吗
点赞 回复 分享
发布于 2017-09-08 23:13
第一题 #include <iostream> #include <cmath> typedef long long ll; int main() { ll n; while ( std::cin >> n ) {   std::cout << ll(sqrt(2.0 * n - 1.25) + 0.5) << std::endl;   }   return 0; }
点赞 回复 分享
发布于 2017-09-08 22:41
第一题啥套路,这是找的规律吗
点赞 回复 分享
发布于 2017-09-08 22:30

相关推荐

点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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