noip普及组复赛模拟试题34(附答案).pdfVIP

noip普及组复赛模拟试题34(附答案).pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1.近来见习魔法师们在进行一项有关二进制数的研究,研究涉及的一个统计问题令他们大

伤脑筋。问题是这样的:若将一个正整数化为二进制数,在此二进制数中,我们将数字1

的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。

例如:(13)10=(1101)2

其中1的个数为3,0的个数为1,则称此数为A类数;

(10)10=(1010)2

其中1的个数为2,0的个数也为2,称此数为B类数;

(24)10=(11000)2

其中1的个数为2,0的个数为3,则称此数为B类数;

程序要求:求出X~Y之中,全部A、B两类数的个数。

样例输入1020输出56

VarX,Y,i,j,la,lb:longint;

procedureze(m:longint);

varl0,l1:longint;

beginl0:=0;l1:=0;

whilem0do

beginifmmod2=0thenl0:=l0+1elsel1:=l1+1;

m:=mdiv2;end;

ifl1l0thenj:=1elsej:=0;

end;

beginla:=0;lb:=0;readln(x,y);

fori:=xtoydo

beginze(i);ifj=1thenla:=la+1elseifj=0thenlb:=lb+1;

end;

writeln(la);writeln(lb);

end.

输入50100输出2823输入200400输出11091

输入10002000输出615386输入4000050000输出48185183

老师给笑笑布置了一份作业,笑笑不知如何解决。老师给了一串很长的数列,

要求从中找出连续的一段来使的总和最大。

【输入文件】:

第一行包含一个整数n,表示数列的长度。(n=100000)

第二行包含n个整数来描述这个数列,每个整数的的绝对值不超过1000。

【文件输出】:

文件中只有一个整数,为最大的连续段总和。

【输入样例】:

5

1-231-4

【输出样例】

4

var

s:array[1..10000]oflongint;

n,ii,t,ans:longint;

begin

readln(n);

fori:=1tondo

read(s[i]);

t:=s[1];ans:=s[1];

fori:=2tondo

begin

ift0thent:=s[i]elset:=t+s[i];

iftansthenans:=t;

end;

writeln(ans);

end.

输入6

154-263输出17

输入10

24-12911720-815318输出87

输入7

1089-512611输出51

输入20

5121920-7-618221981133153217-3041424-13输出230

我们定义f(x)为x最大的奇数因数。比如f(18)=9,输入N,输出f(1)+f(2)+……+f(n).

输入文件:一个整数N,输出文件:输出连加的和。

样例输入:5样例输出:11

Varans,n,i:longint;

Beginreadln(n);

Whilen0do

Beginifodd(n)thenans:=ans+(1+n)*(n+1)ndiv4

Elseans:=ans+n*ndiv4;

N:=ndiv2;

End;

Write(ans);

End.

输入12输出50输入456输出69336

输入1000输出333396

输入10000输出

对于一个有序序列,想知道某个数是否在里面,若在,则返回其在序列中的位置;若不在,

则返回NO。输入文件XL.in。第1行的N表示共有N个数;接下来是N个数;最后一行

是要询问的数K。输出

文档评论(0)

130****3735 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档