博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ NOI0105-40 数1的个数
阅读量:7122 次
发布时间:2019-06-28

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

问题链接

总时间限制:
1000ms
内存限制:
65536kB
描述

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

例如当n=2时,写下1,2。这样只出现了1个“1”;当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。这样出现了5个“1”。
输入
正整数n。1 <= n <= 10000。
输出
一个正整数,即“1”的个数。
样例输入
12
样例输出
5
提示
来源
习题(8-11) 医学部 2010 期末试题 尤朝

问题分析

  这是一个进制有关的计算问题。

  取出各位数字是一种套路。

程序说明

  把功能封装到函数中,是一种好的做法

  使用常量可以增强程序的可重用性。


参考链接:(略)。


AC的C++语言程序:

#include 
using namespace std;const int BASE10 = 10;const int DIGIT = 1;int countDigit(int n, int digit){ int count; count = 0; while(n) { if(n % BASE10 == digit) count++; n /= BASE10; } return count;}int main(){ int n, count; cin >> n; count = 0; for(int i=1; i<=n; i++) count += countDigit(i, DIGIT); cout << count << endl; return 0;}

转载于:https://www.cnblogs.com/tigerisland/p/7563812.html

你可能感兴趣的文章
简易实现 TextView单行文本水平触摸滑动效果
查看>>
android调用系统相机拍照并保存在本地
查看>>
Node.js链式回调
查看>>
IOS中延时执行的几种方式的比较
查看>>
sql中having、group by用法及常用聚合函数
查看>>
用swift开发仪表盘控件(一)
查看>>
使用CAShapeLayer与UIBezierPath画出想要的图形
查看>>
Spring bean注入方式
查看>>
领域驱动设计系列(2)浅析VO、DTO、DO、PO的概念、区别和用处
查看>>
Java的反射机制(Reflection)
查看>>
李洪强iOS经典面试题156 - Runtime详解(面试必备)
查看>>
转 文件路径相关的字符串操作
查看>>
mysql 5.6 分区与不分区的区别
查看>>
Material Theme
查看>>
mysql 字符串函数
查看>>
为什么zookeeper集群中节点配置个数是奇数个?
查看>>
TCP/IP协议详解内容总结(怒喷一口老血)
查看>>
RedHat Linux 5企业版开启VNCSERVER远程桌面功能[转]
查看>>
更改Zend Studio/Eclipse代码风格主题
查看>>
RDIFramework.NET(.NET快速信息化系统开发框架) Web版介绍
查看>>