问题标题: 酷町堂:3467 神奇的公式

0
0
已解决
翟谦瑞
翟谦瑞
新手守护
新手守护

为啥错了?

#include<iostream>
using namespace std;
int f(int n)
{
    if(n==0)return 0;
    if(n==1)return 1;
    if(n%2==0)return f(n/2);
    else return f(n/2)+f(n/2+1);
}
int main(){
    int s,n;
    cin>>s;
    for(int i=1;i<=s;i++)
    {
        cin>>n;
        cout<<f(n)<<endl;
    }
    return 0;
}

WA30分。


1
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼

老兄,你看这数据范围,不用高精度还是啥?

 

还有 N <= 10^50连一重循环都过不了 @桑烁 

 

所以,这道题应该不适合我们做,需要学一些优化。

0
0
0
0
0
0
0
桑烁
桑烁
高级光能
高级光能

N≤10^50

我用的是long long

但莫名其妙超时了

0
桑烁
桑烁
高级光能
高级光能

N≤10^50

我用的是long long

但莫名其妙超时了

我要回答