1的个数不同语言的实现(多组数据测试)

1的个数

时间限制: 3000 ms  |  内存限制: 65535 KB
难度: 1
描述
小南刚学了二进制,他想知道一个数的二进制表示中有多少个1,你能帮他写一个程序来完成这个任务吗?
输入
第一行输入一个整数N,表示测试数据的组数(1<N<1000)
每组测试数据只有一行,是一个整数M(0=<M<=10000)
输出
每组测试输出占一行,输出M的二进制表示中1的个数
样例输入
3
4
6
7
样例输出
1
2
3

C语言:

#include<stdio.h>
int main()
{
int i,j,a,b,c,d;
scanf("%d",&a);
for(i=0;i<a;i++)
{
d=0;
        scanf("%d",&b);
while(b!=0)
{
c=b%2;
if(c!=0)
d++;
b=b/2;
}
printf("%d\n",d);
}
return 0;

}

2,C++:

#include<iostream>
using namespace std;
int main()
{
int i,j,a,b,c,d;
    cin>>a;
for(i=0;i<a;i++)
{
d=0;
        cin>>b;
while(b!=0)
{
c=b%2;
if(c!=0)
d++;
b=b/2;
}
    cout<<d<<endl;
}
return 0;

}

3,Python:

a=int(input())
for i in range(0,a):
    b=int(input())
    d=0
    while (b!=0):
      c=b%2
      if (c!=0):
          d=d+1
      b=b//2#python中的/表示浮点数除法而//表示整数除法
    print(d)

    4,JAVA:

package a;


import java.util.Scanner;


public class Main {


public static void main(String[] args) {
// TODO Auto-generated method stub
int a,b,c,d;
Scanner sc=new Scanner(System .in);
a=sc.nextInt();
for(int i=0;i<a;i++)
{
b=sc.nextInt();
d=0;
while(b!=0)
{
c=b%2;
if(c!=0)
d+=1;
b=b/2;
}
System.out.println(d);
}

}

}

猜你喜欢

转载自blog.csdn.net/llxybm/article/details/79942479