算法设计与分析实验报告-统计数字问题.doc

算法设计与分析实验报告-统计数字问题.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

算法设计与分析实验报告

实验名称统计数字问题评分

实验日期年月日指导教师

姓名专业班级学号

一.实验要求

1、掌握算法的计算复杂性概念。

2、掌握算法渐近复杂性的数学表述。

3、掌握用C++语言描述算法的方法。

4.实现具体的编程与上机实验,验证算法的时间复杂性函数。

二.实验内容

统计数字问题

1、问题描述

一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示,而不是06或006等。数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。

2、编程任务

给定表示书的总页码的10进制整数n(1≤n≤109)。编程计算书的全部页码中分别用到多少次数字0,1,2,…,9。

程序算法

将页码数除以10,得到一个整数商和余数,商就代表页码数减余数外有多少个1—9作为个位数,余数代表有1—余数本身这么多个数作为剩余的个位数,此外,商还代表1—商本身这些数出现了10次,余数还代表剩余的没有计算的商的大小的数的个数。把这些结果统计起来即可。

四.程序代码

#includeiostream.h

ints[10];//记录0~9出现的次数

inta[10];//a[i]记录n位数的规律

voidsum(intn,intl,intm)

{

if(m==1)

{

intzero=1;

for(inti=0;i=l;i++)//去除前缀0

{

s[0]-=zero;

zero*=10;

}

}

if(n10)

{

for(inti=0;i=n;i++)

{

s[i]+=1;

}

return;

}//位数为1位时,出现次数加1

//位数大于1时的出现次数

for(intt=1;t=l;t++)//计算规律f(n)=n*10^(n-1)

{

m=1;inti;

for(i=1;it;i++)

m=m*10;

a[t]=t*m;

}

intzero=1;

for(inti=0;il;i++)

{

zero*=10;

}//求出输入数为10的n次方

intyushu=n%zero;//求出最高位以后的数

intzuigao=n/zero;//求出最高位zuigao

for(i=0;izuigao;i++)

{

s[i]+=zero;

}//求出0~zuigao-1位的数的出现次数

for(i=0;i10;i++)

{

s[i]+=zuigao*a[l];

}//求出与余数位数相同的0~zuigao-1位中0~9出现的次数

//如果余数是0,则程序可结束,不为0则补上所缺的0数,和最高位对应所缺的数

if(yushu==0)//补上所缺的0数,并且最高位加1

{

s[zuigao]++;

s[0]+=l;

}

else

{

i=0;

while((zero/=10)yushu)

{

i++;

}

s[0]+=i*(yushu+1);//补回因作模操作丢失的0

s[zuigao]+=(yushu+1);//补回最高位丢失的数目

sum(yushu,l-i-1,m+1);//处理余位数

}

}

voidmain()

{

inti,m,n,N,l;

cout输入数字要查询的数字:;

cinN;

cout\n;

n=N;

for(i=0;n=10;i++)

{

n/=10;

}//求出N的位数n-1

l=i;

sum(N,l,1);

for(i=0;i10;i++)

{

cout数字i出现了:s[i]次\n;

}

}

程序调试中的问题

调试过程中总是有这样那样的问题,通过一步步的修改,最终得以实现。

六.实验结果

文档评论(0)

134****2521 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档