思路:
若n为偶数,则交出n/2只猫猫,剩余n/2只猫猫;
若n为奇数,则令剩余数量为偶数,此时计数增加1。
通过尽量使猫猫数量为偶数减少犹豫次数。
subtask #1 10pts
subtask #2 20pts
subtask #3 0pts
源码:
#include<bits/stdc++.h>
using namespace std;
int solve(){
long long n,c=0;
cin>>n;
while(n>0){
if(n%2==0){
n=n/2;
}else{
c++;
int dn=n/2;
if((n-dn)%2==0){
n-=dn;
}else{
n=n-dn-1;
}
}
}
cout<<c<<endl;
return 0;
}
int main(){
long T;
cin>>T;
for(long i=0;i<T;i++){
solve();
}
return 0;
}
错误信息:
wrong answer On line 2 column 2, read 2, expected 1
求dalao指导,谢谢