nyoj 100-1的个数 (因为只统计1的个数,连栈都不需要了)

100-1的个数

内存限制:64MB
时间限制:3000ms
特判: No

通过数:33
提交数:42
难度:1

题目描述:

小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?

输入描述:

第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000)

输出描述:

每组测试输出占一行,输出M的二进制表示中1的个数

样例输入:

复制

3
4
6
7

样例输出:

1
2
3

C/C++ AC:
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <cmath>
 6 #include <stack>
 7 #include <set>
 8 #include <map>
 9 #include <queue>
10 #include <climits>
11
12 using namespace std;
13 int N, temp;
14
15 int main()
16 {
17     cin >> N;
18     while (N --)
19     {
20         int cnt = 0;
21         cin >> temp;
22         while (temp)
23         {
24             if (temp % 2 == 1) cnt ++;
25             temp /= 2;
26         }
27         cout <<cnt <<endl;
28     }
29 }

原文地址:https://www.cnblogs.com/GetcharZp/p/9328412.html

时间: 2024-10-06 08:31:05

nyoj 100-1的个数 (因为只统计1的个数,连栈都不需要了)的相关文章

实时统计输入字符个数

JavaScript中经常要实时统计输入的个数,用onkeyup只对输入英文有效果,输入中文时没办法实时统计:而使用onchange,也只能是等输入框失去焦点才能统计,并不能实时.下面的方法就可以实现实时统计: <div id="msg"></div> <input id='txt' value="" /> <script> //当状态改变的时候执行的函数 function handle() { document.ge

c语言实现统计单词个个数

编程实现,从键盘上输入一行字符,统计其中单词的个数. 其中:单词以空格分隔,且空格的个数至少一个. 要求:数组类型为字符型 使用scanf输入一行字符. 输出:单词的个数. 重点:一行字符个数最大为80,定义一维数组来存放这些字符, 当遇到空格时继续查看下一个是否非空格字符,若是,则单词个数加1, 否则,继续读字符,直到结束. 注: 最后一步的输出我输出的变量是count++;的是因为在计算个时候我没有计算第一个单词, 因此要把第一个单词加上.所以输出个数的时候就要输出count++; 代码:

统计‘1’的个数

给定一个非负整数num,对于任意的i,0<=i<=num,计算i的值对应的二进制数中的'1'的个数,将这些结果返回为一个数组. 例如:当num=5时,返回值为[0,1,1,2,1,2]. 解题思路:看到这道题,首先要明白要进行循环,在每个循环里面统计i对应二进制数的1的个数. 代码如下: void Count1Num(int num) {     for (int i = 0; i <= num; ++i)    //循环     {        int count = 0;     

一串数字中有两个只出现一次的数字其余都是成对相同,求这两个数

当然如果这个问题是只有一个不同的数,其他数字成对相同,那么就是把所有数字异或就得出这个数了 这次是有两个只出现一次的数字,其他数字都成对相同 1)先把所有数都异或得到数t 2)算出t的二进制第一个1的位置flag 3)将所有数根据二进制flag位置是否为1分成两组b1[],b2[] (此时每组数字的个数一定是奇数) 4)将b1组异或得到ans1,将b2组异或得到ans2 #include<iostream> #include<stdio.h> using namespace std

原创:C语言打开、下载、删除网页,统计网页字符个数

本程序由本人在华夏联盟的ID闪电笨笨原创,首发地址:http://bbs.hx95.com/ 写此程序希望可以可以激发新手学习C语言的积极性! C语言代码实现功能如下:            1.实现打开指定网页               2.实现下载指定网页            3.统计网页字符个数            4.实现删除指定网页 代码如下: #include<stdio.h> #include <UrlMon.h>//下载函数调用,project—setting

【c语言】统计一个数二进制中的1的个数

// 统计一个数二进制中的1的个数 #include <stdio.h> int count(int a) { int count = 0; while (a) { count++; a = a & (a - 1); } return count; } int main() { printf("%d\n", count(10)); printf("%d\n", count(0)); printf("%d\n", count(-

【C语言】统计一个数二进制中1的个数

//统计一个数二进制中1的个数 #include <stdio.h> int count_one(int num) { int count = 0; while (num) { count++; num = num&(num - 1); //每次消去最后面的一个1,直至没有 } return count; } int main() { printf("%d\n", count_one(12)); printf("%d\n", count_one(

poj 3286 统计0的个数

1 #include <iostream> 2 3 using namespace std; 4 long long p; 5 long long a[20]; 6 long long solve(long long n){ 7 long long left,m,sum =0; 8 for(int i=1;i<12;i++){ 9 left = n/a[i]-1; 10 sum += left*a[i-1]; 11 m = (n%a[i]-n%a[i-1])/a[i-1]; 12 if(

数位dp——统计&#39;1&#39;的个数

今天去牛客网看了看 包含一 这道题,一开始没看清,以为它要统计 1~n 所有数中数字 '1' 出现的总次数,也就是说,若 n == 11,则 ans = 4:而按照题目的原意 ans 应该为 3.看错题意后还是挣扎了好久,具体的调试过程也不想回忆叙述了,先贴上按照我一开始理解的意思的代码吧,虽然没有题目让我测,但我和自己写的暴力法对拍过,应该没问题的. 1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4