rt,今天整理文件的时候发现的早期代码,有两个(一个是我自己写的一个是标答),当时是没想明白就直接照着题解改了,想问一下为什么我会错
我自己的代码
#include<iostream>
using namespace std;
bool s(int c)
{
int a=0,b=0;
while(c>0)
{
if(c%2==1)
{
a++;
}
else
{
b++;
}
c/=2;
}
return a>b;
}
int main()
{
int a=0,b=0;
int i;
for(i=0;i<1000;i++)
{
if(s(i))
{
a++;
}
else
{
b++;
}
}
cout<<a<<" "<<b<<endl;
return 0;
}
标答
#include<iostream>
using namespace std;
bool judge(int x);
int main()
{
int a=0,b=0;
int i;
for(i=1; i<=1000; i++)
if(judge(i))
a++;
else
b++;
cout<<a<<" "<<b<<endl;
return 0;
}
bool judge(int x)
{
int a=0,b=0;
while(x>0)
{
if(x%2)
a++;
else
b++;
x/=2;
}
return a>b;//
}