计数问题
Posted 刘斐!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计数问题相关的知识,希望对你有一定的参考价值。
题目描述 试计算在区间 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 出现的次数。 输入输出样例 输入样例#1: 复制 11 1 输出样例#1: 复制 4 说明 对于 100\%100% 的数据, 1≤ n ≤ 1,000,000,0 ≤ x ≤ 91≤n≤1,000,000,0≤x≤9 。
#include<stdio.h> //我做的没有输出,就百度了一下,然后下下这个题解啵 int flag(int n,int x) //构造一个函数,算传进这个函数的n的各个数字是否和x相等 { int sum=0,a; while(n) //对n的各个数字与x进行判断 { a=n%10; //先取余,从个位数开始分离,与x进行判断 if(a==x) sum++; n=n/10; } return sum; //sum为这个数n的各个数字与x相等的次数 } int main() { int n,x; int sum=0; scanf("%d%d",&n,&x); for(int i=1;i<=n;i++) //从1开始,对1-n的数的各个数字与x进行判断 { sum=flag(i,x)+sum; //求和,把所有数字的各个数字与x的判断次数加起来 } printf("%d\n",sum); return 0; }
以上是关于计数问题的主要内容,如果未能解决你的问题,请参考以下文章