数字计数问题:计算0~9的每一个数字出现的次数
来源:互联网 发布:eval js 语法错误 编辑:程序博客网 时间:2024/05/17 03:45
一本书的页码从自然数1开始顺序编码知道自然数n。书的页码按照通常的习惯编排,每个页码不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0~9。
算法设计:给定书的总页码的十进制整数n,计算书的全部页码中分别用到多少次数字0~9。
该算法实现的C#代码如下:
using System;
namespace algorithm
{
class Program
{
static int length1 = 0;
static void Main(string[] args)
{
int count=Convert.ToInt32(Console.ReadLine());
string s = count.ToString();
length1 = s.Length;
for (int i = 0; i <= 9; i++)
{
int c = Compute(count, i);
if (i == 0)
{
string x = "";
for (int j = s.Length - 1; j >= 0; j--)
{
if (j == 0)
x += "0";
else
x += "1";
}
c -= Convert.ToInt32(x);
}
Console.WriteLine(i+"的数量是:"+c);
}
Console.ReadLine();
}
public static int Compute(int number,int i)
{
string s = number.ToString();
int length = s.Length;
int c =Convert.ToInt32((s[0]-48) * (length-1) * System.Math.Pow(10, length - 2)) ;
if (i == 0 && length1 - length - 1 > 0)
c += (length1 - length - 1) * (Convert.ToInt32(s)+1);
length1 = length;
if(length==1)
return c += (i>0 && i<=number ? 1:0);
if (i >= 0 && i < s[0] - 48)
c += Convert.ToInt32(System.Math.Pow(10, length - 1));
if(i==s[0]-48)
c += number % Convert.ToInt32(System.Math.Pow(10, length - 1)) + 1;
return c + Compute(number % Convert.ToInt32( System.Math.Pow(10, length - 1)), i);
}
}
}
经过反复的测试,以上的代码可以正确输出0~9的次数。
如果发现上面的实现有什么不妥之处,请指出来,谢谢。
如果哪位大侠有更好性能的实现方法,请回复一下,让小弟学习学习,感激不尽。
- 数字计数问题:计算0~9的每一个数字出现的次数
- 统计每一个数字字符出现的次数
- 统计每一个数字字符出现的次数
- 统计每一个数字字符出现的次数
- 计算数字出现的次数
- 计算页码,统计0到9数字出现的次数
- 16周项目一:字符串(统计每一个数字出现的的次数)
- 第十六周上机项目1:统计每一个数字字符出现的次数
- 第十三周项目五字符串操作(1)统计每一个数字字符出现的次数
- 第13周项目5.1.3 统计每一个数字字符出现的次数
- 第13周项目5-统计每一个数字字符出现的次数
- 【编程题】1000个(0-9)数字的数组中查找出现次数最多的3个数字,输出这3个数字和出现的次数。
- 计算0到n中数字2出现的次数
- 关于出现字符、数字次数的问题
- 计算n以内的数字0到9分别出现的次数
- 某个数字出现的次数
- 计算1至n中数字X出现的次数
- 计算数值区间内某个数字出现的次数
- PowerShell 学习(一):运算符
- [转载]Linux批量重命名文件
- Mysql常用命令
- HDU动态规划部分小结
- Linux必学的60个命令
- 数字计数问题:计算0~9的每一个数字出现的次数
- 可以让你少奋斗10年的工作经验
- Orz游戏开发框架代码研究
- 最近找到了点,变成的乐趣
- flash读取asp.net的数据
- 不经意间,已经有2个专利授权了
- Labels and Fonts
- Managing Password Security & Resources
- SQL查询统计