来源:程军康|编辑日期:2009-11-06 12:34:14|点击数: |发布:55
2002年南宁市高中信息学竞赛试题
一、依次写上1,2,3,4,5,•••,9,10,11,12,•••,得到一个数字123456789101112131415•••,求这个数字的第2002位的数字。(7)
算法分析:一位数有9位,两位数有90个,占位数是9+2*90=189位,三位数有900个,占位数字900*3=2700位,故2002位的数字出现在三位数中。我们可对三位数进行循环,位数一超过2002,就仃下来,往回确定2002位的数字即可。
program g2002t1;
var weishu,number,i,j,a,b,k,l:integer;
begin
weishu:=9+90*2;
for i:=100 to 999 do
begin
weishu:=weishu+3;
if weishu>=2002 then
begin
l:=weishu-2002;
a:=i;
for j:=0 to l do
begin
b:=a div 10;
number:=a-b*10;
a:=b;
end;
write('number=',number);
exit;
上一篇:
下一篇: