2003年信息学奥赛NOIP普及组
初赛
更早
2022-11-19 16:25:10
103次
一、单选题
二、简答题
program program4;
var
a: array[0..5] of integer;
sum,n,max,i,j,k:integer;
cover:array[0..22000]of boolean;
begin
read (a[5],a[4],a[3],a[2],a[1],a[0]);
if ((a[5]=0) and (a[3]=0) and (a[1]=0)) then
begin
a[5]:=a[4];a[4]:=a[2]; a[3]:=a[0]; a[2]:=0 a[0]:=0;
end:
for i:=0 to 5 do
if (a[i]>10) then a[i]:=10+(a[i] mod 2);
sum:=0:
for i:=0 to 5 do sum:=sum+a[i]*(6-i);
if ((sum mod 2) <>0) then begin
writeln(`Can``t be divided.`);
Exit;
End;
sum:=sum div 2; max:=0; cover[0]:=True;
for i:=1 to sum*2 do cover[i]:=False;
for i:=0 to 5 do
begin
j:=0;
while (j<a[i])do
begin
for k:=max downto 0 do
begin if (cover[k]) then cover[k+6-i]:=True;end;
max:=max+6-i: j:=j+1;
end;
end;
if (cover[sum]) then writeln (`Can be divided.`)
else writeln(`can``t be divided.`);
end.
输入:4 7 9 20 56 48 输入:1000 7 101 20 55 1 输入:2000 5 l 1 0 0
输出: 输出: 输出:
【知识点】 信息学NOIP普及组
一元二次方程
题目描述:
方程ax^2+bx+c=0,要求给出它的实数解.
输 入:
三个实数:a,b,c,是方程的三个系数(a≠0).
输 出:
如果无实数解,则输出"No solution";
如果有两个相等的实数解,则输出其中一个,四舍五入到小数点后面3位;
如果有两个不等的实数解,则解与解之间用逗号隔开,同样要四舍五入到小数点后3位。
输入样例:
l 2 1
输出样例:
-1.000
程 序:
program Program41;
var
a,b,c,m:real;
begin
read (a,b,c);
m:=b*b -4*a*c;
if ( ① )then
begin
write ( ② :0:3);
write( ` , ` );
write ((-1*b-sqrt(m))/(2*a):0: ③ );
end
else if ( ④ )then
write( ⑤ )
else begin
write (`No solution`);
end
end.
【知识点】 信息学NOIP普及组
翻硬币
题目描述:
一摞硬币共有m枚,每一枚都是正面朝上。取下最上面的一枚硬币,将它翻面后放回原处。然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。再取3枚,取4枚……直至m枚。然后再从这摞硬币最上面的一枚开始,重复刚才的做法。这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。例如,m为1时,翻两次即可。m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;…
输 入:
仅有的一个数字是这摞硬币的枚数m,0<m<1000。
输 出:
为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。
输入样例:
30
输出样例:
899
程 序:
program Programl;
var m:integer;
function solve (m:integer):integer;
vat i,t,d:integer;
flag:boolean;
begin
if (m=1)then
so1ve:= ①
else begin
d:=2*m+1;
t:= 2;
i:= 1;
flag:=False;
repeat
if (t=1)then
begin
solve:= ②
flag:=True;
end
else if ( ③ )then
begin
solve:=i*m-1;
flag:=True;
end
else
t:= ④ ;
i:=i+1;
until flag;
end
end;
begin
read (m);
if ((m>0) and (m<1000)) then
writeln ( ⑤ );
end.
【知识点】 信息学NOIP普及组

的结果是( )。




