题目描述 :
输入:
k = 1, n = 1
输出:
1
解释:
在 [0, 1] 中,我们发现 1 出现了 1 次 (1)。
输入:
k = 1, n = 12
输出:
5
解释:
在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] 中,我们发现 1 出现了 5 次 (1, 10, 11, 12)(注意11中有两个1)。
分析:k=0时,0开始比其它小于等于10的数字 要多一个。
代码:
#include<iostream>
using namespace std;
int f(int ,int );
int main()
{
int i;
i=f(0,29);
cout<<i<<endl;
}
int f(int k,int n)
{
int count ;//作为返回值
if(k==0)
count=1;
for(int i=0;i<=n;i++)
{
int m=i;
while(m)
{
if(m%10==k)
{
count++;
}
m/=10;
}
}
return count;
}
本文探讨了在从0到n的整数范围内,特定数字k出现的总次数。通过迭代算法,遍历每个数字并检查其每一位是否为k,最终得出在指定范围内k出现的次数。特别分析了k=0的情况,指出0会比其他小于等于10的数字多出现一次。
3237

被折叠的 条评论
为什么被折叠?



