郝20221128


私信TA

用户名:dotcpp0653600

访问量:1654

签 名:

等  级
排  名 461
经  验 4625
参赛次数 16
文章发表 42
年  龄 98
在职情况 教师
学  校 上海邮电大学
专  业 计算机程序开发

  自我简介:

TA的其他文章

解题思路:

int er(int a)
{
   int sum1=0,sum0=0,b=a;
   for(;;)
   {
       if(b%2==1)
       {
           sum1++;
           b=(b-1)/2;
       }
       else if(b%2==0)
       {
           sum0++;
           b=b/2;
       }       //判断1,0的个数;

 if(b==0)//B无意义后终止循环返回各值;
       {

         sum1;//本数二进制中1的个数;
         sum0;//本数二进制中0的个数;
       }
   }
}

注意事项:

以上函数需写两遍以便返回两个不同的值

参考代码:

#include <bits/stdc++.h>
using namespace std;
int er1(int a)
{
    int sum1=0,sum0=0,b=a;
    for(;;)
    {
        if(b%2==1)
        {
            sum1++;
            b=(b-1)/2;
        }
        else if(b%2==0)
        {
            sum0++;
            b=b/2;
        }
        if(b==0)
        {

            return sum1;

        }
    }
}
int er0(int a)
{
    int sum1=0,sum0=0,b=a;
    for(;;)
    {
        if(b%2==1)
        {
            sum1++;
            b=(b-1)/2;
        }
        else if(b%2==0)
        {
            sum0++;
            b=b/2;
        }
        if(b==0)
        {
            sum0-1;
            return sum0;
        }
    }
}
int main()
{
    int sum=0,sum1=0;
   for(int i=1; i<=1000; i++)
    {
        if(er1(i)>er0(i))
        {
            sum=sum+1;
        }
        if(er1(i)<=er0(i))
        {
            sum1=sum1+1;
        }
    }
    cout<<sum<<" "<<sum1;
    return 0;
}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区