分享京东笔试 二进制异或和分堆问题,全AC
发布于 2017-04-07 22:33 2717 次浏览 1 赞 来自 笔试面试  
//异或问题
#include <iostream>
#include<string>
#include <math.h>
using namespace std;

int main(int argc, const char * argv[]) {
    int n;
    string a,b;
   
    cin>>n;
    cin>>a>>b;
    int Count=0;
    
    for (int i=0; i<n; i++) {
        if (a[i]!=b[i])
        Count+=pow(2,n-i-1);
    }
    
        cout<<Count;

}

//分堆问题
#include <iostream>
#include<string>
#include <math.h>
using namespace std;

int main(int argc, const char * argv[]) {
    int n,k;
    cin>>n>>k;
    int Count=0;
    
    for (int i=0; ; i++) {
        if (i%2==1) {
            if (n>k) {
                Count++;
                n-=(k+1);
            }else
                break;
        }else{
            if (n>=k) {
                Count++;
                n-=k;
            }else
                break;
        }
    }
    cout<<Count;
    
    return 0;
}


3 条回复

很棒!加油,期待有面试的分享:)

2017-04-07 23:38

有java的代码可以看看吗?

2017-04-10 08:45
断桥残雪 回复 coder_AG4UPUTA

Java思路也差不多啊

2017-04-10 22:59
添加回复
回到顶部