输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少?

例子:输入数字9,则输出结果位9。因为[0-9]中,只有数字7有连续的三个‘1’出现,别的都没有,所以一共有9个数字满足要求。

分析:这个题目与求解一个正整数中‘1’的个数有点类似,就是进行一些循环处理。

代码如下:

 #include <iostream>
using namespace std;
int main()
{
int n,num_1=,k=;
cin>>n;
for(int i=;i<=n;i++)//对[1-n]进行循环处理
{
int j=i;
while(j)
{
if(j&)
num_1++;//该位置为1,则计数加1
else
num_1=;//该位置出现0,则计数清零
j >>= ;
if(num_1==)//假如计数达到3,这break处理,减少运算量
{
k++; //满足连续三个1的条件数字总个数
break;
} }
num_1=;
}
cout<<n-k+;
return ;
}

输入一个正整数n,计算出[0,n]这些整数中的二进制数没有连续3个1的数字有多少的更多相关文章

  1. 给定正整数n,计算出n个元素的集合{1,2,....,n}能够划分为多少个不同的非空集合

    给定正整数n,计算出n个元素的集合{1,2,....,n}能够划分为多少个不同的非空集合 附源码: #include<iostream> using namespace std; int ...

  2. 从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。

    Scanner sc=new Scanner(System.in); System.out.println("请输入一个正整数:"); int ss=sc.nextInt(); i ...

  3. 17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和。) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1

    17.从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行.请采用循环控制语句来实现. (三角形腰上的数为1,其他位置的数为其上一行相邻两个数之和.) 1 1 1 1 ...

  4. Java 输入一个正整数,按蛇形打印。

    参考博客:    http://yangyingming.com/article/371/ //输入一个正整数n(n<=30),输出n所对应的蛇形矩阵.举两个例子: //n=10时,蛇形矩阵为: ...

  5. 输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)

    package leetcode;import edu.princeton.cs.algs4.Cycle;import java.util.ArrayList;import java.util.Arr ...

  6. 【PTA】5-1 输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。

    5-1 输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出.要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩scor ...

  7. 【C语言】输入一个正整数,判断其是否为素数

    素数的定义: 素数(prime number)又称质数,有无限个. 素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为素数.代码1: #include<stdio.h& ...

  8. python 输入一个字符串,打印出它所有的组合

    import itertools str = input('请输入一个字符串:') lst = [] for i in range(1, len(str)+1): lst1 = [''.join(x) ...

  9. js限制输入数字能输入小数点,js定义数组,js往数组中添加数据,js将字符型转为数字型,除法结果保留两位小数——js小测:计算比赛得分

    一个朋友跟我说要去给某个比赛算分: 规则:去掉最低分最高分求平均分: 最近在学习大数据可视化——图谱,用到js一些东西,所以今天就用js练练 用到知识点: js限制输入数字能输入小数点,js定义数组, ...

随机推荐

  1. Java Design Pattern(Factory,Singleton,Prototype,Proxy)

    一.Factory 设计模式: the most common pattern,create a new object ,eg. A a=new A();工厂模式的好处:工厂模式可以做到把创建对象单独 ...

  2. Angular2+ 实现组件交互的众多方式

    实现组件交互有很多方式,下面列举. 1.父组件向子组件传递数据:(属性绑定) 父组件 [子属性名] = "父属性名" <child-content [data]=" ...

  3. 阅读github上的项目源码

    1.基础资料 函数手册,类库函数手册2.和程序相关的专业资料 高数,linux文件系统3.相关项目的文档资料4.留备份,构造可运行的环境,找开始的地方 main(),5.分层次阅读,写注解,编程思想, ...

  4. 原生js手动轮播图

    手动轮播图,为轮播图中的一种,轮播图主要有无缝轮播,手动轮播,延迟轮播,切换轮播等等... 轮播图主要用于展现图片,新出商品,词条,又能美观网页.給网页中增加动态效果. 手动轮播,是小编认为最简单的一 ...

  5. XenServer 自动化布署 (关键词: PXE ANSWER SCRIPT)

    XenServer 6.x PXE自动化布署: 测试环境:win10 + Tiny pxe server 1.0.2,采用gpxelinux.0 时间:2017.1.10 PXE远程安装: 1)def ...

  6. dom 及bom

    BOM的全称为Browser Object Mode,中文名是浏览器对象模型.它的一些功能和特性如下:1. BOM提供了独立于内容而与浏览器窗口进行交互的对象2. 由于BOM主要用于管理窗口与窗口之间 ...

  7. Python_Mix*生成器,生成器函数,推导式,生成器表达式

    生成器: 生成器的本质就是迭代器 生成器一般由生成器函数或者生成器表达式来创建,其实就是手写的迭代器 def func(): print('abc') yield 222 #由于函数中有了yield ...

  8. selenium操作日历控件

    日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用js去掉 ...

  9. Centos7 Firewall

    1.1 firewall启停设置 [root@tomcat ~]# systemctl stop firewalld.service #关闭firewall [root@tomcat ~]# syst ...

  10. mysql的报错

    这个错误是因为mysql的进程错误关闭导致的,我们需要把/var/lib/mysql/mysql.sock文件删除或者改名,之后再重启就ok