| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1111 人关注过本帖
标题:统计整本书页码中0~9出现的次数
只看楼主 加入收藏
hamsleek
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-31
收藏
 问题点数:0 回复次数:8 
统计整本书页码中0~9出现的次数
老师留了个题目,希望能帮忙解答.
我只会用最笨的办法,就是每个都求模算.
希望哪个大侠能帮我一下,指点个更好的办法.
老师说最好用分治法.我想不出来.

题目是:

给出一本书的总页码数.统计所有这些页码中0~9每个数字出现的次数.

例如:给出11
则有 1 2 3 4 5 6 7 8 9 10 11
1出现4次 2~0各出现1次.

如果给出的是N呢?
搜索更多相关主题的帖子: 页码 统计 
2007-11-01 20:57
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 

void main()
int a[];
int n;
int i;
int b;
for(j=0;j<n;j++)
b[j]=0;
for(i=0;i<n;i++)
j=a[i]%10
b[j]++;
}

2007-11-01 21:24
missiyou
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:531
专家分:218
注 册:2007-10-9
收藏
得分:0 

什么叫分治法呀,对了,我的群人少各位有意进,请进群号:43047318

2007-11-01 21:26
hamsleek
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-31
收藏
得分:0 

你的这个方法是普通的求模吧,当N很大的时候,会消耗很长时间, 有没有好点的算法啊,比如说递归.呵呵。帮帮忙啊!

2007-11-01 21:37
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
递归消耗的时间更长.

倚天照海花无数,流水高山心自知。
2007-11-01 22:27
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
2楼写的不错了.基本上算法是这样

for(j=0;j<n;j++)
b[j]=0;
for(i=0;i<n;i++)
{
while(a[i])
{
b[a[i]%10]++;
a[i]/=10;
}
}

倚天照海花无数,流水高山心自知。
2007-11-01 22:29
hamsleek
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2007-10-31
收藏
得分:0 

谢谢啊,我在王晓东写的《算法设计与实验题解》上看到这个问题的递归解法了,
感觉是更简单的。
但我看不动他的说明,
能不能请你们哪位能我解答一下呢。
我现在伤透了,也没想出来,刚学的算法,希望大家能帮帮我,谢谢啊!!

2007-11-02 20:38
作弊
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2007-11-3
收藏
得分:0 

i<n 的算法肯定是错的 穷举无意义

书页码 是连续的

那么99页的话 就是 10组 0 1 2 3 4 5 6 7 8 9

改变的是前缀例如 11 21 31 41

而在0-99之间 是 10组前缀数改变

同理999 是 10组 0-99的重复

那这样统计就可以 以10的次方为 基础

具体算法建议楼主自己想

2007-11-04 09:51
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 
有规律,可以考虑二分或分治

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-11-04 12:13
快速回复:统计整本书页码中0~9出现的次数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014846 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved