中级守护
小王有一个好习惯,那是就是每天坚持背单词,小王的记性不太好,但是小王有自己的方法。 他随身会携带一个记事本,将单词记到本子里面,但是有一个问题,记事本只有M页,并且每页只能记录一个单词。 当他碰到一个单词,他就会去记事本里查询单词的翻译,如果记事本里没有记录这个单词的话,小王就需要查字典了,然后再将单词记录到记事本里,以备后续的查找。 如果记事本里有这个单词,那小王就可以立马知道单词的意思啦。
假设记事本中有M页,每页只能记录一个单词。每当小王将一个新单词(记事本里没有记录的单词)记录到单词本前,如果当前记事本中已经记录的单词数不超过M,小王就会将新单词存入一个未使用的页里;若记事本中已记录M个单词,小王只能清空最早记录的那个单词,腾出这一页用来记录新单词。
一天小王阅读一篇文章,文章的长度为N个单词,请问小王总共需要查多少次字典?假设在阅读开始前,小王的记事本里中没有记录任何单词。
新手天翼
要用到数组:
for (i=1;i<=n;i++)
{
flag=0;
for (j=1;j<=m;j++)//如果笔记里已经有该字符flag=1
if (a[i]==b[j]) flag=1;
if (flag==0)
{
s++;//需查字典的次数+1
if (k<m)
b[++k]=a[i];//记录该字符
else
b[++k2]=a[i];//清空原来的,记录新的字符
if (k2==m) //再次从第1页开始替代旧的字符
k2=0;
}
}
大概是这样的