online_judge_1113

来源:互联网 发布:asp购物系统源码 编辑:程序博客网 时间:2024/06/05 18:39
#include <iostream>#include <cmath>using namespace std;int main(){    int m,n;    int ans,t,i,r;    while(cin>>m>>n)    {        if(n==0 && m==0)            break;        ans = 0;        t = m;        r = m;        i=0;        while(t <= n)        {            i++;            t *= 2;            r = 2*r + 1;        }        t /= 2;        r /= 2;        ans = pow(2, i-1) - 1;        if(r < n)            n = r;        for(i=t; i<=n; ++i)            ans++;        cout<<ans<<endl;    }    return 0;}

 

北大的题目就是有意思,不特意考察编程能力。反倒是数学推理能力。也许这是最重要的吧!

下面的代码很漂亮,可以超时……

//此方法超时
#include <iostream>using namespace std;void countTree(int m, int n,int &ans){    if(m<=n)    {        ans++;        countTree(2*m, n, ans);        countTree(2*m+1, n, ans);    }}int main(){    int m,n;    int ans;    while(cin>>m>>n)    {        if(n==0 && m==0)            break;        ans = 0;        countTree(m, n, ans);        cout<<ans<<endl;    }    return 0;}



0 0
原创粉丝点击