课题练习——找从1到N出现的1的个数
#include<iostream.h>
#include<conio.h>
int Sum1(int n)
{
int count = 0; //记录1的个数
int factor = 1; //标记,逐位计算1的个数
int Lower = 0;
int Curr = 0;
int Higher = 0;
while ( n/factor != 0) //每次计算Lower Curr Higher的值
{
Lower = n - (n/factor) * factor;
Curr = (n/factor) % 10;
Higher = n / (factor*10);
switch (Curr)
{
case 0:
count += Higher * factor;
break;
case 1:
count += Higher * factor + Lower +1;
break;
default:
count += (Higher +1)*factor;
break;
}
factor *= 10;
}
return count;
}
int main()
{
int num;
int jixu;
cout<<"请输入要搜索的整数:"<<endl;
cin>>num;
cout<<"从1到此整数出现的1的个数为:"<<Sum1(num)<<endl;
cout<<"是否要继续测试:(0,退出 1,继续)"<<endl;
cin>>jixu;
if(jixu==1)
{
cout<<endl;
main();
}
else
{
return 0;
}
getch();
return 0;
}
四,程序运行

五,实验总结:
这次课堂练习老师拿出课上的时间让我们一起找规律,相当于告诉了我们实验思路。有了具体的思路,接下来做题就比较顺畅了,加上与小伙伴的讨论,于是做出来实验。
课题练习——找从1到N出现的1的个数的更多相关文章
- 输入n个字符串,找出最长最短字符串(若有个数相同的,都打印出来)
首先,要求找到最长最短字符串,我们应该用数组将其存起来,输入的个数是不固定的,我们就可以用Scanner获取要输入的个数,最终找到的个数也不固定,我们可以封装两个方法,并且返回值类型为数组. 我遇到的 ...
- 【剑指offer】找出数组中出现一次的两个数
2013-09-08 10:50:46 一个整型数组中,除了两个数字之外,其他数字都出现了2次,找出这两个只出现一次的数字,要求时间复杂度是O(N),空间复杂度是O(1). 小结: 任何数与0异或,结 ...
- 485. 找出二进制串中连续的1的个数 Max Consecutive Ones
Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...
- 找出一堆数中最小的前K个数
描写叙述: 给定一个整数数组.让你从该数组中找出最小的K个数 思路: 最简洁粗暴的方法就是将该数组进行排序,然后取最前面的K个数就可以. 可是,本题要求的仅仅是求出最小的k个数就可以,用排序能够但显然 ...
- 找1到n所有整数出现1的个数
编程之美2.4 n=12时,1,11,12这3个数包含1,所以1的个数是5. Line 9是为了防止factor溢出. #include <iostream> #include <s ...
- Python3找出List中最大_最小的N个数及索引
# -*- coding: utf-8 -*- import heapq nums = [1, 8, 2, 23, 7, -4, 18, 23, 24, 37, 2] # 最大的3个数的索引 max_ ...
- hdu5056(找相同字母不出现k次的子串个数)
题意: 给你一个字符串,然后问你这个字符串里面有多少个满足要求的子串,要求是每个子串相同字母出现的次数不能超过k. 思路: 这种题目做着比较有意思,而且不是很难(但自己还是嘚瑟,w ...
- 算法---数组总结篇2——找丢失的数,找最大最小,前k大,第k小的数
一.如何找出数组中丢失的数 题目描述:给定一个由n-1个整数组成的未排序的数组序列,其原始都是1到n中的不同的整数,请写出一个寻找数组序列中缺失整数的线性时间算法 方法1:累加求和 时间复杂度是O(N ...
- Chiaki Sequence Revisited HDU - 6304 lowbit找规律法
Problem Description Chiaki is interested in an infinite sequence a1,a2,a3,..., which is defined as f ...
随机推荐
- zedboard上移植OPENCV库
zedboard上移植OPENCV库 之前做了很多移植OPENCV库的工作,但是需要包含的各种库,需要交叉编译,X264 ,JPGE ,FFMPGE等等 注意:在<嵌入式系统软硬件协同设计实战指 ...
- 最新CSS3常用30种选择器总结(适合初学者)
1. *:通用元素选择器 * { margin: 0; padding: 0; } *选择器是选择页面上的全部元素,上面的代码作用是把全部元素的margin和padding设为0,最基本的清除默认C ...
- mybatis使用笔记
关于动态SQL里的条件查询(if test): 1.lombok插件和mybatis插件在有些变量名下会冲突,比如一个变量为rType的字段,lombok插件认为应该是getRType,但是mybat ...
- 把Java对象转为xml格式
主要使用到的Java类有:javax.xml.bind.JAXBContext,javax.xml.bind.Marshaller(编排) 代码主要展示如下: public class Student ...
- STM32F4_TIM输入波形捕获(脉冲频率)
Ⅰ.概述 本文在前面文章“STM32基本的计数原理”的基础上进行拓展,讲述关于“定时器输入捕获”的功能,和上一篇文章“定时器比较输出”区别还是挺大的.在引脚上刚好相反:一个输入.一个输出. 本文只使用 ...
- 【转】Linux Soclet编程
原文地址:http://www.cnblogs.com/skynet/archive/2010/12/12/1903949.html “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编 ...
- ARM中MMU地址转换理解
首先,我们要分清ARM CPU上的三个地址:虚拟地址(VA,Virtual Address).变换后的虚拟地址(MVA,Modified Virtual Address).物理地址(PA,Physic ...
- C 构造一个 简单配置文件读取库
前言 最近看到这篇文章, json引擎性能对比报告 http://www.oschina.net/news/61942/cpp-json-compare?utm_source=tuicool 感觉技术 ...
- Hello World程序
本文最初发表于2015-8-??,是由别的地方迁移过来的 本文利用改写内存的办法在屏幕中央显示“Hello world”字符串. 首先我们需要了解80*25彩色字符模式显示缓冲区的结构. 〉〉内存中B ...
- hdu 3282 Running Median
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=3282 Running Median Description For this problem, you ...