输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。

原创 2015年07月08日 21:05:47


//输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。

#include<iostream>
using namespace std;
int getResult(int n)
{
 if(n==0)
  return -1;
 int count=0;
 char str[100];
 int i=0;
 while(n)
 {
  str[i++]=n%2+'0';
  n/=2;
 }
 str[i]='\0';
 for(int k=i-1;k>=0;k++)
 {
  if(str[i]=='0')
  {
   str[i]='\0';
   count++;
  }
  else
   break;
 }
 int len=i-count;
 for(int k=0;k<len/2;k++)
 {
  char t=str[k];
  str[k]=str[i-k-1];
  str[i-k-1]=t;
 }
 int sum=0;
 for(int i=0;i<len;i++)
 {
  if(str[i]=='0')
   sum++;
 }
 return sum;
}

  
void main()
{
 int n;
 cin>>n;
 cout<<getResult(n)<<endl;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

机试:求一个二进制数中0的个数

求一个二进制数中0的个数【求1的个数同理】 package comz; public class TT { public static void main(String[] args)...
  • imzoer
  • imzoer
  • 2012年09月24日 23:24
  • 4763

您好,人工智能为您服务,需要请按1,不需要请按0

“人工智能”这个词有多火?   看看身边那些被冠以“智能”前缀的产品有多少吧。智能手机、智能手表、智能电视、智能音箱及各种智能家具等等,当耳熟能详的传统用品加上智能二字,似乎总能唤起你体验的欲望。...
  • isandra
  • isandra
  • 2015年02月02日 14:46
  • 795

华为机试题---统计一个数字转为二进制0和1的个数

一、问题描述 功能描述:统计一个数字转为二进制后,0和1的个数,组成数组返回 输入:6 输出:{1,2} 二、算法分析    要把一个数字转为二进制就得为这个数字不断取余数 ,如果能整除则为...

#计算1~N中数字X的个数,X=0~9.

计算1~N中数字X的个数,X=0~9

python手撸线性回归(二)theta0不需要正则化

在上一篇关于线性回归的文章中,python手撸线性回归及参数解释,我们可以看到正则化项中并没有theta0二是从theta1开始的,In[7]的第三行 Andrew在其机器学习中对此的解释是,...

C#&JAVA 去掉字符串中的特殊符号,只保留数字文字和不需要去掉的符号

public string[] getCutStr(string str, string[] shiedStr)//如果不是数字或英文或汉字,就截取,shiedStr为屏蔽的字符串组合       ...
  • YGF7812
  • YGF7812
  • 2014年10月16日 14:31
  • 1226

当推理不需要逻辑能力,也兼 学习离散数学或数字电路有什么用处

1.智力测验,逻辑题,鸡兔同笼,一元二次方程 有一类智力测验题,会问到"甲说丙说的是假话,乙说甲在瞎说"什么的;还有类似这样的,"凯特是你的秘书,问是不是办公室里至少有一个人长发及腰"。得分高的...

Hbase windows 无配置单机搭建。 JDK都不需要你装。

hadoop hbase window 单机搭建
  • m890701
  • m890701
  • 2016年12月06日 17:32
  • 1224

计算0到N中包含数字1的个数(整合)

有这样一个函数f(n),对于任意正整数n,它表示从 0 到 n 之间出现“1”的个数,比如 f(1) = 1, f(13) = 6,请列出从 1 到 1234567890 中所有的 f(n) = n ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:输入一个10进制数字,请计算该数字对应二进制中0的个数,注意左数第一个1之前的所有0都不需要计算。不需要考虑负数的情况。
举报原因:
原因补充:

(最多只允许输入30个字)