D_君悦君 2020-10-21 23:19 采纳率: 0%
浏览 248

c语言对于给定的十进制整数N(N<10000),将1到N(含N)之间的每个整数转成二进制……(遇到一个题,我写了一段代码,但怎么也编译不出来,不知道哪里错了,萌新求大神指教!)

图片说明

#include <iostream>
using namespace std;
int main()
{
    int N; //输入的整数
    int j = 0;
    int zero = 0;//零的个数
    cin >> N;
    int a[100];//存放1~N间的所有整数
    int b[100];//存放二进制中的1,0
    for (int i =1; i <= N; i++)//为数组赋值1~N
    {
        int t=0;
        a[t] = i;
        t++;
    }
    for (int i = 0; i < N; i++)//对1~N所有整数进行二进制转换
    {
        while (i<N)//二进制转换
        {
            b[j] = a[i] % 2;
            if (b[j] == 0) { zero++; }
            a[i] = a[i] / 2;
            j++;
        }
    }
    cout << zero << endl;//输出O的个数
}
  • 写回答

1条回答 默认 最新

  • 小学狗喵喵叫 2020-10-22 11:06
    关注

    可以取反后用&

    int main()
    {
        //零的个数
        int zero = 0;
        int N = 1;
        cin >> N;
        for (int i = 1; i <= N; i++) {
            int j = ~i;
            int tmp = 1;
            while (tmp <= i) {
                if (j & tmp)
                    zero++;
                tmp <<= 1;
            }
        }
        cout << zero << endl;//输出0的个数
        return 1;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 lvgl v8.2定时器提前到来
  • ¥15 qtcp 发送数据时偶尔会遇到发送数据失败?用的MSVC编译器(标签-qt|关键词-tcp)
  • ¥15 cam_lidar_calibration报错
  • ¥15 拓扑学,凸集,紧集。。
  • ¥15 如何扩大AIS数据容量
  • ¥15 单纯型python实现编译报错
  • ¥15 c++2013读写oracle
  • ¥15 c++ gmssl sm2验签demo
  • ¥15 关于模的完全剩余系(关键词-数学方法)
  • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助