大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  信息学奥赛>>竞赛题库>>分区联赛模拟试题2         本站全文搜索: 友情提示:

分区联赛模拟试题2
http://www.mydrs.org  11/5/2001  大榕树


一、回答问题
1、 假定有四个元素A,B,C,D进一个栈,出栈顺序是ABCD,请写出所有数目的进栈序列。
2、 设A是一个n阶上三角阵,将这个上三角阵按列序存储一维数组b[n*(n+1)/2]中,如果a[I,j]存放在b[k],那么请给出求解k的计算公式。
3、 设A是一个一维数组a[m*n],现将这个数组按列序存储在一个m*n的矩阵B中,如果a[k]存放在b[I,J],那么请给出求解I,J的计算公式。
二、程序设计
1、尾数前移
一个整数的尾数是a(可以多位),把尾数a移到其前面(成为最高位)后所得的数为原整数的b(一位数字)倍,原整数为多大?
这是《数学通报》上发表的第一个具体的尾数前移问题。我们要求解一般的尾数前移问题:整数n的尾数a(可以多位)移到n的前面所得的数为n的b倍,记为n(a。b)。b为一位数字,且不大于尾数a(当a为一位时)或a的最高位数字(当a为多位时)。
设计程序,对于指定的尾数a与倍数b,寻求n(a,b)。
2、高精度开平方
求任意给定的正整数n的平方根,精确到小数点后指定的m位。
三、阅读程序
1、const Maxn=100;
Maxk=100;
type arr=array[1..Maxn]of integer;
ktype=1..Maxk;
var i,n,k:integer;
a,b :arr;
procedure counting(a,b:arr;n:integer;k:ktype);
var i,j:integer;
c : array[1..Maxk]of integer;
begin
fillchar(c,sizeof(c),0);
for j:=1 to n do
c[a[j]]:=c[a[j]]+1;
for i:=2 to k do c[i]:=c[i]+c[i-1];
for j:=n downto 1 do begin
b[c[a[j]]]:=a[j];
c[a[j]]:=c[a[j]]-1;
end;
for i:=1 to n do write(b[i]:5);
writeln;
end;
begin
write('N,K=');readln(n,k);
for i:=1 to n do begin
read(a[i]);
if a[i]>k then begin writeln('error');halt;end;
end;
counting(a,b,n,k);
readln;
end.
第1组键盘输入:
8 6
3 6 4 1 3 4 1 4
第2组键盘输入:
5 3
4 2 1 8 2

Output
1 1 3 3 4 4 4 6
error


共有2219位读者阅读过此文

  • 上篇文章分区联赛模拟试题1
  • 下篇文章第二届分区联赛提高组复赛

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    第八届分区联赛复测消息
    第六届分区联赛提高组初赛答案
    第六届分区联赛提高组初赛
    第七届分区联赛提高组复赛
    分区联赛指南
    第七届分区提高组初赛答案
    第七届分区联赛提高组初赛
    第七届分区普及组初赛答案
    第七届分区联赛普及组初赛
    全国分区联赛复赛评奖消息
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号