数字1的数量
时间限制:1000 ms | 内存限制:65535 KB
难度:1
- 描述
-
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。
- 输入
- 输入N(0 <= N <= 10^9)
多组测试数据
- 输出
- 输出包含1的个数
- 样例输入
-
12
- 样例输出
-
5
-
同 点击打开链接
-
AC码:
-
#include<stdio.h> int fun(int n) { if(n<1) return 0; int sum=0,t=n,p=1; while(n>0) { if(n%10==0) sum+=n/10*p; else if(n%10==1) { if(n==t) sum+=n/10*p+1; else { sum+=n/10*p+t%p+1; } } else sum+=(n/10+1)*p; n/=10; p*=10; } return sum; } int main() { int n; while(~scanf("%d",&n)) { printf("%d\n",fun(n)); } return 0; }
NYOJ 648 数字1的数量,码迷,mamicode.com
时间: 2024-12-15 01:58:03