题目描述 试计算在区间 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; }
原文:https://www.cnblogs.com/liufei-/p/9142553.html