- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
noip普及组复赛模拟试题7(答案)
【试题描述】
给出一个正整数n,然后对n进行一系列处理,处理用以下代码表示:
0 不做任何处理
1 对原数加上100, 若加上100后大于1000,则再减去1000.
2 对原数减去100, 若减去100后小于0,则再加上200
3 对原数除2取整
4 对原数乘4,若乘4之后大于1000,则除以1000取余数。
问 题:输入n,k后,将 n作为原数(1≤ n < 1000), k为处理码的十进制表示(1<k≤30000)。要求将k化为五进制的数,然后以该五进制数从高位到低位的顺序,分别将每位数字作为处理码对原数按上述规则进行处理,求处理后的结果。
【输入描述】n k (2个整数)
【输出描述】 处理后的结果
【输入样例】 33 247
【输出样例】 28
【解题提示】
样例说明:
k=247 化为五进制数:1442, 则处理系列为:
1 33+100=133
4 133*4=532
4 532*4=2128 (除以1000取余数,成为128)
2 128-100=28
所以输出28
program ex1764;
var n,k,i,t,l:integer;
st1,st2:string;
begin
readln(n,k);
st2:=;
repeat
t:=k mod 5;
str(t,st1);
st2:=st1+st2;
k:=k div 5;
until k=0;
l:=length(st2);
for i:=1 to l do
case st2[i] of
1:begin n:=n+100; if n1000 then n:=n-1000;end;
2:begin n:=n-100;if n0 then n:=n+200; end;
3:begin n:=n div 2; end;
4:begin n:=n*4;if n1000 then n:=n mod 1000;end;
end;
writeln(n);
end.
输入 56 1249 输出 936 输入 512 20000 输出 612
输入 1000 30000 输出 200
Description
《贫民窟的百万富翁》获得2009年美国奥斯卡最佳影片,影片的主人公是一个叫贾马尔的小男孩,他在贫民窟长大,后来他参加了一档印度版的《谁想成为百万富翁》电视直播节目,他的特殊成长经历居然使他能够回答这个节目中的每一个问题,最后成功获得百万奖金。其中有一个题目是这样的:读入四个整数(0<每个整数<50000),判断这四个整数能否构成连续的四个奇数,如果可以就输出三行,每行一个等式,每个等式都满足“前一个数+2=后一个数”,否则请将这四个整数从大到小输出(数据之间以一个空格隔开)。
Input 一行,四个空格隔开的整数。( 0 每个整数 50000 )
Output
三行,每行一个等式 或
一行,从大到小排列的4个数
Sample Input
样例1:
17 13 11 15
样例2:
18 13 11 16
Sample Output
样例1:
11+2=13
13+2=15
15+2=17
样例2:
18 16 13 11
Hint
样例1中17、13、11、15可以构成连续的四个奇数11、13、15、17,所以就输出三个等式。样例2中的四个数据18、13、11、16不能构成连续的四个奇数,所以将他们从大到小输出。
program ex1285;
var a:array[1..4] of longint;
t:longint;
i,j:integer;
begin
for i:=1 to 4 do
read(a[i]);
readln;
for i:=1 to 3 do
for j:=i+1 to 4 do
if a[i]a[j] then begin t:=a[i];a[i]:=a[j];a[j]:=t; end;
i:=1;
while (i4) and (a[i]+2=a[i+1]) do inc(i);
if (i=4) and (a[1] mod 20) then
begin
writeln(a[1],+,2,=,a[2]);
writeln(a[2],+,2,=,a[3]);
文档评论(0)