拓展延伸:
有一个整数n,写一个函数f(n,k),返回0到n之间出现的"k"的个数,0<=k<10
my codes as below:
class Program
{
static void Main(string[] args)
{
//Test samples: //Expected results:
Console.WriteLine(TotalCountForNumbersSinceZero(-20,1)); //12
Console.WriteLine(TotalCountForNumbersSinceZero(20, 1)); //12
Console.WriteLine(TotalCountForNumbersSinceZero(0, 1)); //0
Console.WriteLine(TotalCountForNumbersSinceZero(-20, 0)); //3
Console.WriteLine(TotalCountForNumbersSinceZero(20, 0)); //3
Console.WriteLine(TotalCountForNumbersSinceZero(0, 0)); //1
Console.WriteLine(TotalCountForNumbersSinceZero(20, 11)); //0
Console.ReadKey();
}
/// <summary>
/// To count the appearance times of x in numbers from zero to lastNumber
/// </summary>
/// <param name="lastNumber"></param>
/// <param name="x"></param>
/// <returns></returns>
static int TotalCountForNumbersSinceZero(int lastNumber, int x)
{
if (lastNumber < 0)
lastNumber = -lastNumber;
int totalCount = 0;
for (int i = 0; i <= lastNumber; i++)
{
totalCount += CountForSingleNumber(i, x);
}
return totalCount;
}
/// <summary>
/// To count the appearance times of x in number
/// </summary>
static int CountForSingleNumber(int number, int x)
{
if (x > 9 || x < 0)
{
return 0;
}
int count = 0;
do
{
if (number % 10 == x)
{
count++;
}
number = (number - number % 10) / 10;
}
while (number != 0);
return count;
}
}
本文介绍了一个实用的C#程序,该程序能够计算出在0到指定整数n之间,数字k出现的总次数。通过两个核心函数实现:一个遍历所有数字并累加k的出现次数,另一个检查单个数字中k的出现次数。
7568

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



