0
张元宝
修练者
修练者
小王有一个好习惯,那是就是每天坚持背单词,小王的记性不太好,但是小王有自己的方法。 他随身会携带一个记事本,将单词记到本子里面,但是有一个问题,记事本只有M页,并且每页只能记录一个单词。 当他碰到一个单词,他就会去记事本里查询单词的翻译,如果记事本里没有记录这个单词的话,小王就需要查字典了,然后再将单词记录到记事本里,以备后续的查找。 如果记事本里有这个单词,那小王就可以立马知道单词的意思啦。
假设记事本中有M页,每页只能记录一个单词。每当小王将一个新单词(记事本里没有记录的单词)记录到单词本前,如果当前记事本中已经记录的单词数不超过M,小王就会将新单词存入一个未使用的页里;若记事本中已记录M个单词,小王只能清空最早记录的那个单词,腾出这一页用来记录新单词。
一天小王阅读一篇文章,文章的长度为N个单词,请问小王总共需要查多少次字典?假设在阅读开始前,小王的记事本里中没有记录任何单词。
求思路。
0
0
0
0
0
0
0
王俊杰
高级光能
高级光能
输入,输出不说了
核心代码:
- 循环(int 从1开始,到n结束,每次加加)//用i
- {
- 整形 temp,flag=0;//flag是判断是真是假
- 输入>>temp;
- 循环(int 从h开始,到t结束,每次加加)//用j
- {
- 判断(temp等于等于a[j])
- {
- flag=1;
- 打断循环;
- }
- }
- 判断(flag等于等于0)
- {
- count加加;
- a[t]等于temp;
- t加加;
- 判断(t减h大于m)
- h加加;
- }
- }
- 望采纳
0
张天璨
新手天翼
新手天翼
h=1,t=1;
for(int i=1;i<=n;i++)
{
int temp,flag=0;
cin>>temp;
for(int j=h;j<=t;j++)
{
if(temp==a[j])
{
flag=1;
break;
}
}
if(flag==0)
{
count++;
a[t]=temp;
t++;
if(t-h>m)
h++;
}
}
cout<<count;
0
0
0
0
0
0
王子健
初级天翼
初级天翼
思路:
1.定义。
2.for循环。
3.for循环中定义两个变量。
4.if判断。
5.if判断。
6.输出。
总的来讲就是for套if套if。
望采纳!!!
谢谢!!!
核心:
for(int i=1;i<=n;i++)
{
int temp,flag=0;
cin>>temp;
for(int j=h;j<=t;j++)
{
if(temp==a[j])
{
flag=1;
break;
}
}
if(flag==0)
{
count++;
a[t]=temp;
t++;
if(t-h>m)
h++;
}
}
定义,输入,输出自己加。
输出:cout<<count;
望采纳!!!