数数
Posted cjj2503
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数数相关的知识,希望对你有一定的参考价值。
数数
问题描述
ACM俱乐部里的那些无聊家伙经常举行数数比赛- -。
比赛规则就是对于一个给出的正整数n,把1到n的正整数写在纸上,然后数里面数字1被写出来的次数。
输入
输入有多组数据。 每组数据一行,包含一个正整数n(小于等于2^26)。
输出
对应每组数据,输出所求的1的出现次数。
输入例子 1
11
20
输出例子 1
4
12
import java.util.Scanner;
public class Main
public static int f(int n)
int factor = 1;
int res = 0;
int low_bit, cursor, high_bit;
while (n / factor!=0)
low_bit = n % factor;
cursor = n / factor % 10;
high_bit = n / factor / 10;
if (cursor == 0)
res += high_bit * factor;
else if (cursor == 1)
res += high_bit * factor + low_bit + 1;
else
res += (high_bit + 1) * factor;
factor *= 10;
return res;
public static void main(String[] args)
int n;
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext())
n=scanner.nextInt();
System.out.println(f(n));
以上是关于数数的主要内容,如果未能解决你的问题,请参考以下文章