博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课堂练习——找1
阅读量:6208 次
发布时间:2019-06-21

本文共 1761 字,大约阅读时间需要 5 分钟。

题目要求:

给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

     要求:   

      1.写一个函数 f(N) ,返回到 之间出现的“1”的个数。例如 f(12)  = 5

    2.32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。

一、设计思路

  通过列举法,总结函数f(N)规律如下:

  1.一位十进制数:当N>=1,f(N)=1;当N=0时,f(N)= 0;

  2.两位十进制数:f(13)=个位出现1的个数+十位出现1的个数=2+4=6;

          f(23)=个位出现1的个数+十位出现1的个数=3+10=13;

          ......

          f(93)=个位出现1的个数+十位出现1的个数=10+10=20;

  3.三位十进制数:f(123)=个位出现1的个数+十位出现1的个数+百位出现1的个数=13+20+24=57;     

  4.f(abcde),计算c位上的1的个数,需要看abcde的情况:

    当c=0时,受高位影响,百位上出现1的个数为:(ab)*100

    当c=1时,受高位和低位影响,百位上出现1的个数为:(ab)*100+((cde)+1)

    当c>1时,受高位影响,百位上出现1的个数为:((ab)+1)*100

二、程序代码

    

1 // 找1.cpp : Defines the entry point for the console application. 2 // 3  4 #include "stdafx.h" 5 #include
6 #include "stdlib.h" 7 int count(int n) 8 { 9 int count=0; 10 int factor=1; 11 int LowerNum=0;12 int CurNum=0;13 int HigherNum=0;14 while (n/factor!=0) 15 {16 LowerNum=n-(n/factor)*factor;17 CurNum=(n/factor)%10;18 HigherNum=n/(factor*10);19 switch (CurNum)20 {21 case 0:22 count=count+HigherNum*factor;23 break;24 case 1:25 count=count+HigherNum*factor + LowerNum +1;26 break;27 default:28 count=count+(HigherNum+1)*factor;29 break;30 }31 factor=factor*10;32 }33 return count;34 }35 36 int main()37 {38 int num;39 cout<<"请输入数字:\n";40 cin>>num;41 cout<<"\n";42 cout<
<<"出现数字1的个数为:\n";43 cout<
<

三、运行结果截图

   

    

    

四、总结与心得

    本次实验的题目是找1的个数,完成时设计思路花费的时间比较长,主要是用于总结规律,对于这种偏于数学应用方面的题目,只要找到规律,那么所有问题都不再困难。这也给我们提示,在我们平时解决问题时,一定要多加思考,这样才能事半功倍。

    

 

转载于:https://www.cnblogs.com/mudanhuakai/p/4473960.html

你可能感兴趣的文章
C语言基础学习7:返回指针值的函数
查看>>
fatal error LINK1123:failure during conversion to COFF:file invalid or corrupt
查看>>
IE6/7下Select控件Display属性无效解决办法
查看>>
Django之名称空间
查看>>
<<深入浅出nodeJS>>读书笔记--<二>
查看>>
回收ImageView占用的图像内存
查看>>
Linux Kconfig及Makefile学习
查看>>
java之jvm学习笔记六(实践写自己的安全管理器)
查看>>
【评分】第二次作业-数独-第一次测试成绩
查看>>
基础排序算法,java实现(快速,冒泡,选择,堆排序,插入)
查看>>
struts请求源码的跟踪
查看>>
在jquery的ajax中添加自定义的header信息
查看>>
echarts3.0之关系图详解
查看>>
一步步学Qt,第四天-Qt程序发布问题
查看>>
每天一个小算法(Shell sort5)
查看>>
Tomcat 部署项目的三种方法(转)
查看>>
Python3.x和Python2.x的区别
查看>>
Python列表
查看>>
cenOS-telnet refused问题
查看>>
CNKI知网如何批量下载论文
查看>>