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
0