P1980 计数问题

题目描述

试计算在区间 11 到 n n的所有整数中,数字 x(0 ≤ x ≤ 9)x(0≤x≤9)共出现了多少次?例如,在 11到 11 11中,即在 1,2,3,4,5,6,7,8,9,10,111,2,3,4,5,6,7,8,9,10,11 中,数字 11 出现了 44 次。

输入输出格式

输入格式:

22个整数n,xn,x,之间用一个空格隔开。

输出格式:

11个整数,表示xx出现的次数。

解题:

package com;

import java.util.Scanner;

/**
 * @author by 瑾墨
 * @Classname test
 * @Description
 * @Creat-Date 2019/1/27 22:00
 */
public class Main {
    static long panduan(int n, int x)
    {
        int i,j;
        //初始计数器的值
        long s=0;
        for(i=1;i<=n;i++)
        {
            //j是判断位数的一个计数器
            j=i;
            //如果位数不为0,即该位有数,进行循环,
            // 若该位为0,及时停止循环,跳到下一个数
            while(j>0)
            {
                //如果取余后等于x,判断个数的计数器+1
                if(j%10==x)
                {
                    s++;
                }
                //把j除以10,到下一位后继续循环
                j=j/10;
            }
        }
        //返回计数器的值
        return s;
    }
    public static void main(String[] args) {
        int t,c;
        //主函数里的计数器
        long r;
        Scanner scanner=new Scanner(System.in);
        t=scanner.nextInt();
        c=scanner.nextInt();
        //用函数进行判断
        r= panduan(t,c);
        System.out.println(r);
    }
}

你可能感兴趣的:(P1980 计数问题)