问题标题: 酷町堂:1382 记事本

0
0
已解决
李语彤
李语彤
中级守护
中级守护

小王有一个好习惯,那是就是每天坚持背单词,小王的记性不太好,但是小王有自己的方法。 他随身会携带一个记事本,将单词记到本子里面,但是有一个问题,记事本只有M页,并且每页只能记录一个单词。 当他碰到一个单词,他就会去记事本里查询单词的翻译,如果记事本里没有记录这个单词的话,小王就需要查字典了,然后再将单词记录到记事本里,以备后续的查找。 如果记事本里有这个单词,那小王就可以立马知道单词的意思啦。

假设记事本中有M页,每页只能记录一个单词。每当小王将一个新单词(记事本里没有记录的单词)记录到单词本前,如果当前记事本中已经记录的单词数不超过M,小王就会将新单词存入一个未使用的页里;若记事本中已记录M个单词,小王只能清空最早记录的那个单词,腾出这一页用来记录新单词。

一天小王阅读一篇文章,文章的长度为N个单词,请问小王总共需要查多少次字典?假设在阅读开始前,小王的记事本里中没有记录任何单词。


0
已采纳
徐云皓
徐云皓
新手天翼
新手天翼

要用到数组:
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;
        }
    }

 

 

大概是这样的

0
我要回答