回 帖 发 新 帖 刷新版面

主题:[讨论]大家一起备战(1)!(题目不菜..)


第一题 Cantor表(30分)
现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张
表来证明这一命题的:
1/1  1/2  1/3  1/4  1/5 ...
2/1  2/2  2/3  2/4  ...
3/1  3/2  3/3  ...
4/1  4/2 ...
5/1
   我们以z字型给上表的每一项编号。第1项是1/1,然后是1/2,2/1,3/1,2/2...
输入:整数n(1<=n<=10)
输出:表中的第N项
样例:
input:  n=7
output: 1/4
第二题    回文数( 30分)
  若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回
文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是
一个回文数。又如,对于10进制数87,
                  STEPl: 87+78= 165              STEP2: 165+561= 726
                  STEP3: 726+627=1353      STEP4:1353+3531=4884
  在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。
  写一个程序,给定一个N(2<N<=10  OR N=16)进制数 M.求最少经过几步可以得到回
文数。如果在30步以内(包含30步)不可能得到回文数,则输出“Inpossible”
样例:
INPUT                
N=9 M=87     
Output
STEP=6
第三题 旅行家的预算(40分)
    一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是
空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位).每升汽油能行
驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距
离Di、每升汽油价格  Pi( i=l,2,...N)。 计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No solution”。  样例:  INPUT  D1=275.6  C=11.9  D2=27.4  P=2.8   N=2
 油站号i  离出发点的距离Di 每升汽油价格Pi
 1        102.0            29            
 2        220.0           2.2           

  
  1999年普及组复赛.测试数据在附件里.

回复列表 (共2个回复)

沙发

[[i]b]
program work2(input,output);
const maxlongint=2147483647;
type arraytype=array[1..20] of longint;
var n:longint;

function invert(n:longint):longint;
var temp:longint;
begin
     temp:=0;
     while n>0 do
     begin
          if temp<=(maxlongint-n mod 10)/10
             then temp:=temp*10+n mod 10
             else temp:=0;
          n:=n div 10
     end;
     invert:=temp
end;

begin {Main program}
     write('Input n:');
     readln(n);
     while (invert(n)<=maxlongint-n) and (invert(n)<>0) and (invert(n)<>n) do
     begin
          writeln(n,'+',invert(n),'=',n+invert(n));
          n:=n+invert(n)
     end;
     if invert(n)=n
        then writeln('Ok!')
        else writeln('Impossible in long integer!')
end.[/b][/i][em11]

板凳

题目很菜

我来回复

您尚未登录,请登录后再回复。点此登录或注册