注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

艺洋人生教学博客平台

有梦想的教师最幸福…

 
 
 

日志

 
 

信息学奥赛题库11  

2012-05-31 08:43:47|  分类: ◇ 信息学奥赛 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自cyj5220《奥赛练习二》

1、 有一大堆核桃,两个两个拿,余下一个;三个三个拿,余下两个;四个四个拿,余下三个;以此类推,直至九个九个拿,余下八个。问这一大堆核桃最少是几个?

Program  example5_17;

var  i :word;

begin

               i := 10;

               repeat

                 i := i+1;

              until (i mod 2 = 1) and (i mod 3 = 2) and (i mod 4 = 3) and (i mod 5 = 4) and (i mod 6 = 5) and (i mod 7 = 6) and (i mod 8 = 7) and (i mod 9 = 8);

               writeln(i);

end.

 

2、 有四个自然数,它们的和为45,而第一个数加上2,等于第二个数减去2,同时等于第三个数乘以2,也等于第四个数除以2,以次打印输出这四个数。

Program  example5_18;

var  i : byte;

begin

            i := 2;

            repeat

i := i+2;

            until (i-2)+(i+2)+(i div 2)+(i*2) = 45;

            writeln(i-2:5,i+2:5,i div 2:5,i*2:5);

end.

 

 

3、 求由键盘输入的正整数N的所有约数的和。

     Program example5_19;

        Var   n,i,s: integer;

        begin

             write('Input N : ');

             readln(n);

             s := 0; i := 1;

             repeat

              if n mod i = 0 then s := s+i;

              i := i+1;

             until i = n;

             writeln('S = ',s);

        end.

 

4、 利用格里高利公式:π/4 = 1-1/3+1/5-1/7+1/9-1/11… 可以求出π的值。要求精确到数点后的第六位。

Program example5_20;

          Var n,s  : longint;

            t,pi : real;

          begin

             pi := 0;

t := 1;

             n := 1;

s := 1;

repeat

              pi := pi+t;

              n := n+2;

              s := -s;

              t := s/n

            until abs(t) < 0.000001; 

            pi := pi*4;

            writeln('Pi = ', pi:0:6)

          end.

    运行结果:

        pi = 3.141596

 

5、  AB两地相距200公里,在一次军事行动中,AB两支军队作相向运动。A军每小时行军5公里,B军每小时行军8公里。有一个骑着摩托车的通讯兵,与A军同时出发,其行驶的速度为每小时45公里,为行进中的两军传递信息。他碰到B军后,算跑了一趟,然后折回驶向A军;碰到A军后,也算跑了一趟,再折回驶向B军。如此来来回回,直至AB两军之间的距离小于0.1公里为止,问通讯兵共行驶多少趟?

Program example5_21;

var  s,v,t :real;

           n : byte;

begin

              n := 0;

              s := 200;

              v := 8;

              repeat

                t := s/(45+v);

                s := s-(8+5)*t;

                n := n+1;

                v := 13-v;

               until s < 0.1;

               writeln(n,' Times');

          end.

 

6、寻找怪数:有一种奇怪的自然数,它的比其小的所有因子之和等于它本身,例如:6 = 1+2+3,其中123都是6的因子,编程找出10000之内的所有怪数。

     Program example5_22;

          var

            i,j,s : integer;

          begin

            for i := 2 to 10000 do begin

              s := 1;

              for j := 2 to i div 2 do

                if i mod j = 0 then s := s+j;

              if s = i then writeln(i);

            end;

      end.

 

  评论这张
 
阅读(33)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017