加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

初级编程入门题3

(2012-03-06 17:19:02)
标签:

正整数

字母组合

问题描述

教育

分类: pascal初级编程入门题

四、编程提高题

232、给出一个自然数N1<=N<=15,且N为奇数),要求找出这样的N个连续的正整数,使得前(N+1)/2个正整数的平方和,等于后(N-1/2个正整数的平方和。

例如:当N=5

      满足条件的5个正整数为:1011121314

      102+112+122=132+142

输入:N

输出:满足条件的N个正整数

 

234、给出一个正整数NN<=32767),要求将其分解成质因子的连乘积。

    例如:当N=24

          结果为:24=2*2*2*3A

    又如;当N=13 

          输出结果为:13=13 B

    输入:N

输出:如(A)或(B)格式的结果

 

235、输入N和一组整数(以0结束),N表示编号12,…,N的箱子,一组整数表示零件的重量(单位为G)。现要求将一批零件,分别装入编号为12,…,NN只箱子中去,装入的方法是:

    0G< 零件重量<100G    装入1号箱

100G<=零件重量<150G    装入2号箱

150G<=零件重量<200G    装入3号箱

           ……                   ……

    以此类推。装完之后,要求找出哪只箱子中的零件个数最多,若有相同的最多则要求全部列出(仅列出箱子的号数即可),若因零件太重无箱子可装,也应输出这类零件的个数。

 

236、编制一个乘法运算的程序从键盘读入2100以内的正整数,进行乘法计算并输出。

    例如:输入格式89 13                                 又如:

      输出格式:     89                                     输入格式:16 8

                 ×  13                                     输出格式:   16

                         267                                        ×   8    

                                   890                                                    128

                     1157

237、输入三个自然数NIJ1<=I<=N,1<=J<=N)。N表示有一个NN列的棋盘格子,(IJ)表示棋盘中格子的位置。如:N-4I-2J-3表示了棋盘中的第二行第三列的格子。

如下图:

 

 

1

第二行

第三行

第四行

       第一列   第二列    第三列    第四列

 

 

 

 

 

 

23

 

 

 

 

 

 

 

 

 

    要求编制一个程序,根据输入的NIJ的值,输出与格子(IJ)在同一行、同一列、同一对角线上的所有各自位置。

     例如:当N=4I=2J=3时,输出的结果是:    

      21)(22)(23)(24  {同一行上格子的位置}

      13)(23)(33)(43  {同一列上格子的位置}

      12)(23)(34         {左上到右下对角线上的格子位置}

      41)(32)(23)(14  {左下到右上对角线上的格子位置}

 

238、问题描述:给出一个正整数N1N100),即可得到一个由N 个正整数组成的从1开始的如下数列:1234……N-2,N-1,N,且可求出从1开始的这N个数的全部各个数位上的数字之和。  例如:当N=12时,这12个数是:123456789101112

则这12个数的数字之和为:   S=1+2+3+4+5+6+7+8+9+1+0+1+1+1+2=51                        

 

239、问题描述:

输入两个真分数的分子与分母(分子与分母的值均不大于3000),对这两个分数进行加法计算。若符合条件,则应将计算的结果化为带分数。

例如:       输入               输出

            25       

2,3                                                   1+1/15(带分数的表达形式)

 

38

1,8                                                                4/8  (不用约分)        

240、问题描述:

键盘输入两个高精度的整数,编程实现这两个高精度整数的减法运算,两数均不会超过240位。要求输出该减法运算的算式与结果。

例如:       输入               输出

          999989079          999989079=90919

          123456345678       123456345678=222222

241、求数组元素                 

问题描述:给出任意一个自然数NN100,输出满足下列条件的数组元素及不同方案数,条件是:

   <1>数组元素由各不相同的自然数组成。

   <2>数组元素的最后一个元素必为 n

   <3>每一个数组元素都不小于它前面一个元素的平方( 第一个元素除 )

   <4>数组中包含的元素个数可不相同, 但至少要有一个元素。

   例如: n=1

         数组(1)

         k=1 (k 记录不同的方案数)

   又如 n=5

        数组(5)

            (1,5)

            (1,2,5)

            (2,5)

             k=4

  输入:N(不用判错)

  输出:一个整数(不同方案数)

 

242、所谓丑数,就是那些因子只含2,3,5的数。1,2,3,4,5,6,8,9,10,12,15是最前面的11个丑数。为方便起见,将1也看作是丑数。

请编写一个程序寻找并打印第N个(N<=3000)个丑数。

输入:N

输出:The N'th ugly number is <number>

(其中N用输入数取代,<number>换为对就于N值所计算出的丑数)

输入样例:

N11

输出样例:The 11'th ugly number is 15.

 

243、找出N位自然数中(N<=8)具有下列性质的数:如果将这个数分为两部分,且位数相等,然后将这两部分相加,所得和的平方,等于原来那个数。从键盘输入N,输出符合性质的数,各数间用空格分隔。

 

244、字母组合

问题描述:字母A,B,C的所有可能的组合(按字典顺序排序)是:A,AB,ABC,AC,B,BC,C

每个组合都对应一个字典顺序的序号,如下所示:

1  A

2  AB

3  ABC

4  AC

5  B

6  BC

7  C

任务1:找出某个字母组合的字典序号。例如,AC的字典序号是4

任务2:找出该字母组合下的第N个字母组合。例如N=2,即AC的后N个字母组合为BC

输入:输入包括3

第一行  N  表示字母组合由字母表中前N个字母组成

第二行  K  表示某一字母组合

第三行  M  表示要求输出前N个字母组成组合下的第个M字母组合

输出:输出包括2

第一行  字母组合K的序号

第二行 第M个字母组合

输入样例:3

          AB

          6

输出样例:2

          BC

 

245、字符串匹配问题
字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([])([])都应该输出NO
输入:文件的第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。(input.txt)
输出:在输出文件中有N行,每行都是YESNO(output.txt)

246
、寻找第K大数
一堆数有N个,我想从大到小排成一排,从中挑出第K大的那个数进行采样分析请你帮忙挑出来。
输入:输入文件的第一行为二个整数NK,表示整数的个数(NK<=10000),下面N行每行为一个整数,其值都在(-32768~32767)之间。(input.txt)
输出:输出文件只有一个数,为第K大整数(output.txt)

247
、自然数的分解方案数
一个自然数可以写成若干个小于等于自己的自然之和,这叫该自然数的一个分解。不同的分解是表示这个自然数分解成的所有自然数不完全相同。
例如:3=2+13=1+1+1表示不同的分解。而3=2+13=1+2为相同的分解。
现在的任务是,给出一个自然数,要求所有不同的分解方案数。
输入:输入文件的只有一个自然数NN<=10000(input.txt)
输出:输出文件只有一个数,为N的分解方案数。(output.txt)

 

248、超级素数:一个n位超级素数是指一个n位正整数,它的前1位,前2, . . . ,n位均为素数,例如,7331是个4位超级素数,因为7737337331均为素数。由键盘输入n (n<9), 然后输出全部的n位超级素数。

 

249、问题描述:一个整数的整数字串是由该整数的连续数位的数字构成。程序名为例如:6158的子串包括6,1,5,8,61,15,58,615,158,6158

任务:找出最大的质数子串

输入:整数N0<=N<=1000000000)

输出:N的最大质数子串,若所有子串都是非质数,则输出“No primes

输入样例1: 2319

输出样例1: 31

输入样例26804

输出样例2No primes

250、找出N位自然数中(N<=8)具有下列性质的数:如果将这个数分为两部分,且位数相等,然后将这两部分相加,所得和的平方,等于原来那个数。从键盘输入N,输出符合性质的数,各数间用空格分隔。

 

251、        我们知道,所谓的卡列列克运算,是指任意一个四位数,只要它们各个位上的数不全相同,就有这样的规律:程序名为step.pas

1.    把组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;

2.    把组成这个四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数字中含有0,则此数不足四位);

3.    求出以上两数之差,得到一个新的四位数。

重复以上过程,总能得到最后结果是6174

试编写一个程序,实现卡布列克运算,要求以下面的格式输出全部运算过程和结果,统计需要运算的步数(如下例为3步)。

输出格式:

    n5346

    6543-3456=3087

    8730-378=8352

    8532-2358=6174

        SETP=3

 

252、对于一个五位数a 1a2a3a4a5,可将其拆分为三个子数:

 sub1=a1a2a3

 sub2=a2a3a4

 sub3=a3a4a5

 例如,五位数20207可以拆分成

 sub1=202

 sub2=020=20

 sub3=207

    现在给定一个正整数K,要求你编程求出1000030000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1sub2sub3都可被K整除。

 

输入
输入由键盘输入,输入仅一行,为正整数K0<K<1000)。
 
输出
输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
 
样例
num.in
15
 
num.out

22555

25555

28555

30000

 

253、溢出 over.pas

    问题描述

   写一个程序,读入两个非负整数及一个运算符号判断两整数及运算结果是否超出了PASCAL语言中关于长整数类型的定义。(长整数范围为-21474836482147483647

输入文件

一行包含整数和运算符,运算符(‘+’,‘-’,‘*’,‘div’)

输出文件

先输出一遍原输入,并在后面输出03行适当内容,

如:first number is too big

     second number is too big

result number is too big

例如: 输入                               输出

300+3                                     300+3

300000*300000                             300000*300000

                                          result is too big

9999999999999999999+1                     9999999999999999999+1

                                                                        first number is too big

                                          result number is too big

建议用int64来处理,范围大小是

-9223372036854775808 .. 9223372036854775807 

 

254、请你编一程序实现两种不同进制之间的数据转换。

输入:

输入数据共有三行,第一行是一个正整数,表示需要转换的数的进制n(2n16),第二行是一个n进制数,若n>10则用大写字母AF表示数码1015,并且该n进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2m16)

输出:

    输出仅一行,包含一个正整数,表示转换之后的m进制数。

样例:

change.in

16

FF

2

 

change.out

11111111

 

255、阶乘问题 也许你早就知道阶乘的含义,N阶乘是由1N相乘而产生,如:

    12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600

12的阶乘最右边的非零位为6

    写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。

注意:10,000,000!有2499999个零。

 

输入
仅一行包含一个正整数N
 
输出
单独一行包含一个整数表示最右边的非零位的值。
 
样例
fact.in
12
 
fact.out

6

 

2564位数排列。

    任给出4个非0的不同数字,求出由这4个数字组成的所有的4位数。   

  例如:

        输入:3  2  1  6

   

     输出:1 2 3 6   1 2 6 3   1 3 2 6   1 3 6 2   1 6 2 3   1 6 3 2

              2 1 3 6   2 1 6 3   2 3 1 6   2 3 6 1   2 6 1 3   2 6 3 1

              3 1 2 6   3 1 6 2   3 2 1 6   3 2 6 1   3 6 1 2   3 6 2 1

              6 1 2 3   6 1 3 2   6 2 1 3   6 2 3 1   6 3 1 2   6 3 2 1

       程序要求:从键盘输入4个不同的非0数字,列出由这4个数字组成的所有4位数,每行输出6个。

257、圆环上求素数。

 

0

    012,……910个数排成一圈(如下图)

 

      

 

 

 

 

 

 

   

给出一个取数长度L(1<=L<=5),然后从1开始按顺时针方向连续取L个数字,拼成一个长为L位的数。此时共有9个长为L位的数,然后输出这9个数中的素数。   

  例如:L=2,此时9个长为L位的数为:

         122334455667788990

    其中素数有:236789

程序要求:输入:L

          输出:全部满足条件的素数。如果没有则输出No

 

258、求分数和的最小值。

    给出一个数字字符串,即字符串中的字符全部为数字,并以字符'$'结束(字符'$'本身不是数字符,仅作为结束符号)

   

  例如:

            '12$''2135$''312456$',……

   

  并设字符串的长度L<=8(包括'$')

   

  今将数字字符串分成三个部分(分法为任意的),例如:

       '312456$'可分为'3''124''56';

                 或者'31''24''56',……

 

从上例可看出,当数字串给出之后,分成三部分的分法是许多的(每一部分不能为空),对每一种分法,可以得到三个数和三个分数.

 

例如:

    分法'3''124''56'对应的三个数为312456

                      对应分数为:1/31/1241/56

   

  分法'31''24''56'对应的三个数为312456

                      对应分数为:1/311/241/56

 

    程序要求:从键盘输入一个数字串('$'作为结束符号)。找出一种分法,使得到的三个分数的和S为最小,输出S的值(精确到小数点后的第6)

   

  若给出的数字串中,非0的字符少于3个,则此时不能组成三个数,输出一个'ERROR'

   

  例如:'12$''100100$'……

 

 

 

259、最大最小差(MaxMin)

问题描述:

现在有N个正整数,每一次去掉其中2个数ab,然后加入一个数a*b+1,这样最后只剩下一个数P。要求求出最大的P记为MaxP,最小的pMinP,和他们的差K=MaxP-MinP

对于给定的数列,编程计算出它的Max,MinK

输入文件(MAXMIN.IN):

第一行是数列的长度N(不超过50),以下N行,每行一个正整数(不超过2位)。

输出文件(MAXMIN.OUT):

输出一共三行,每行一个整数,依次为max,min,K

输入输出样例:

MAXMIN.IN

MAXMIN.OUT

2

1

1

2

2

0

 

260、输入一个英文句子,例如:“This is a Book.",可以看到句子是以“.”来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A$相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。

        例如对上句子而言,若输入单词“is”,则应输出: 2

                          若输入单词“isa”,则应输出:11

 

261、我们将左右对称的自然数称为回文数,例如:1214114等;

将只能被1与其本身整除的自然数称之为素数,例如:7353等。

键入NM,求出NM(含NM)之间既是回文数又是素数的自然数共有多少个?

 

262、现代数学的著名证明之一是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  

 

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/22/13/12/2...

    输入:整数N1<=N<=107

    输出:表中的第N项。

    样例:

    INPUT

    N=7

    OUT PUT

1/4

 

263、给出二个任意的正整数NK1<=N<=100000<=K<N),然后进行如下操作:(30%

  1)从N中连续减去2RR=0123...

  2)当剩余的数不够减时,则将其加上K,再重复(1)的操作过程。

  3)若剩余的数为0时,则结束操作并输出进行减法的次数。

  4)若存在永远不能减完的情况,则输出信息“ERROR!”。

       例如:当N=4K=2时,操作过程如下:

       14-1=3  2^0  

       23-2=1  2^1

     由于不够减,所以加K的值2,得:N=1+23

       33-1=2 2^0

       42-2=0 2^1

     此时结果为0,则输出:STEP=4(表示进行了4次减法操作运算)

     又如:当N=2,K=1时,操作过程如下:

       12-1=1 2^0

     由于不够下次减,所以加K的值1,得:N=1+1=2

       22-1=1 2^0

        …………

     在这种情况下,永远不能减完,则输出信息“ERROR!”

 

264、生日日期 ( Birthday )  

问题描述:

小甜甜的生日是YYMMDD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。

输入格式:

从文件的第一行分别读入YYMMDD其中1949<=YY<=2002,日期绝对合法。

输出格式:

输出文件只有一行,即小甜甜生日第一万天以后的日期,格式为 YY-MM-DD

样例:

BIRTHDAY.DAT

BIRTHDAY.OUT

1975 7 15

2002-11-30

 

 

265、 分解因式 ( Factor )

问题描述:

一个自然数N的正因子个数记为F(N),例如18的所有正因子为1236918,所以F(18)=6。现在给出K,求所有满足F(N)=KN中最小的数。

 

输入格式:

从文件读入数据,第一行为K,其中0<K<=80

 

输出格式:

输出到文件第一行,如果存在不大于20000的解,则输出这个N,否则输出“NO SOLUTION”。

 

样例1

FACTOR.DAT

FACTOR.OUT

9

36

 

样例2

FACTOR.DAT

FACTOR.OUT

17

NO SOLUTION

 

266、 K好数(K-Good Number

问题描述:

如果一个自然数NK进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求LK进制数中K好数的数目。例如K = 4L = 2的时候,所有K好数为111320223031337个。给定KL,求LK好数的数目。

 

输入格式:

从文件读入数据,第一行为K、L,其中K<=16L<=10

 

输出格式:

将结果输出到 KGOOD.OUT

 

样例

KGOOD.DAT

KGOOD.OUT

4 2

7

 

267Sramoc问题 ( Sramoc Problem )

问题描述:

Sramoc ( K , M ) 表示用数字01、2K-1组成的自然数中能被M整除的最小数。给定 KM,求Sramoc ( K,M )。例如 K=2M=7的时候,Sramoc( 2 , 7 ) = 1001

 

输入格式:

从文件SRAMOC.DAT读入数据。第一行为两个整数KM满足2<=K<=101<=M<=1000

 

输出格式:

输出Sramoc(K,M)SRAMOC.OUT

 

样例

 

SRAMOC.DAT

SRAMOC.OUT

2 7

1001

 

 

268、 数位和与积

 试编写程序求出自然数n的各个数位之和与之积。
  输入:文件中的以此存放了若干个自然数 n(n<500000)
  输出:各行依次输出每一个自然数n的各个数位之和与之积。
  例如:
    输入
      92 23
    输出
      11 18
      5 6

 

269、顺序数串无穷小数

小明构造了一个无穷小数x=0.12345678910119899100101…,其中的数字是依次写下各自然数而得到的。试求出小数点后第m位数字。
   输入:文件中每行有一个整数m( m<=20000)
   输出:输出文件中每行有一个数字,存放着小数点后第m位数字。
   例如:
     输入
      4
      15
     输出
      4
      2

 

270NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:

   43x8

   6a5122a

  -512y0

ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号“─”既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。

   问题求解         

编写程序,解输入的一元一次方程, 将解方程的结果(精确至小数点后三位)输出至屏幕。

    你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。

         

      输入:

           6a5122a

   输出:

           a0.750

 

271、任意给定一个自然数N,寻找一个M,要求MN的倍数,且它的所有各位数字都是01组成,并要求M尽可能小

例如:输入     3      输出    3*37111

      输入      31    输出    31*3581=111011        

 

272、由M个数组成环行,要求输出他们相邻的四个数的最大值和最少值

(输出第一行为最大值,第二行为最少值)

例如:

输入

       5

1         2  3  4  5

  输出:

     14

     10

 

273、方阵填数:在一个N N的方阵中,填入12,……N N个数,并要求构成如下的格式:

 

N=6

16 17 18 19 20  1

15 30 31 32 21  2

14 29 36 33 22  3

13 28 35 34 23  4

12 27 26 25 24  5

11 10  9  8  7  6

N=5

13 14 15 16  1

12 23 24 17  2

11 22 25 18  3

10 21 20 19  4

 9  8  7  6  5

例:

 

 

 

 

 

 

 

274、若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。

    例如:(1310=11012

        其中1的个数为30的个数为1,则称此数为A类数;

         1010=10102

        其中1的个数为20的个数也为2,称此数为B类数;

         2410=110002

        其中1的个数为20的个数为3,则称此数为B类数;

   程序要求:求出1n之中(包括11000),全部AB两类数的个数。

例如:输入 1

输出A:1

    B:0

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有