程序设计基础内蒙古师范大学OJ题.docx

上传人:b****5 文档编号:7890426 上传时间:2023-01-27 格式:DOCX 页数:51 大小:24.56KB
下载 相关 举报
程序设计基础内蒙古师范大学OJ题.docx_第1页
第1页 / 共51页
程序设计基础内蒙古师范大学OJ题.docx_第2页
第2页 / 共51页
程序设计基础内蒙古师范大学OJ题.docx_第3页
第3页 / 共51页
程序设计基础内蒙古师范大学OJ题.docx_第4页
第4页 / 共51页
程序设计基础内蒙古师范大学OJ题.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

程序设计基础内蒙古师范大学OJ题.docx

《程序设计基础内蒙古师范大学OJ题.docx》由会员分享,可在线阅读,更多相关《程序设计基础内蒙古师范大学OJ题.docx(51页珍藏版)》请在冰豆网上搜索。

程序设计基础内蒙古师范大学OJ题.docx

程序设计基础内蒙古师范大学OJ题

 

十进制到六进制(1435)

 

Description

 

进制转换:

将十进制(不超过int类型表示的范围)的数转换为六进制的数。

 

Input

 

输入为第一行是组数n,后面n行是需要进制转换的十进制数。

 

Output

 

进制转换后的n行六进制数。

 

SampleInput

 

3

13

46

265

 

SampleOutput

 

21

114

1121

 

1/55

 

Source

 

#include

intmain()

{

inta,b[1000],i,j,n,m;

while(scanf("%d",&n)!

=EOF)

{

while(n--)

{

scanf("%d",&a);

for(i=0;a>0;i++)

{

b[i]=a%6;

a=a/6;

}

for(j=i-1;j>=0;j--)

printf("%d",b[j]);

printf("\n");

}

 

}

return0;

}

 

2/55

 

母牛的故事(1128)

 

TimeLimit:

100MSMemoryLimit:

65536K

TotalSubmit:

4414Accepted:

1688

 

Description

 

有一头母牛,它每年年初生一头小母牛。

每头小母牛从第四个年头开始,每年年初也生一头小母牛。

请编程实现在第n年的时候,共有多少头母牛?

 

Input

 

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n≤55),

n的含义如题目中描述。

n=0表示输入数据的结束,不做处理。

 

Output

 

对于每个测试实例,输出在第n年的时候母牛的数量。

每个输出占一行。

 

SampleInput

 

2

4

5

0

 

SampleOutput

 

2

4

6

 

3/55

 

#include

intmain()

{

inta[100],i,n;

a[1]=1;

a[2]=2;

a[3]=3;

a[4]=4;

for(i=5;i<=55;i++)

a[i]=a[i-1]+a[i-3];

while(scanf("%d",&n)!

=EOF)

{

if(n==0)

break;

printf("%d\n",a[n]);

 

}

return0;

 

}

 

4/55

 

评委会打分(1607)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

1663Accepted:

683

 

Description

 

青年歌手大奖赛中,评委会给参赛选手打分。

选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。

 

Input

 

输入数据有多组,每组占一行,每行的第一个数是n,n大于2且小于等于100,表示评委的人数,然后是n个评委的打分,分数都是整数。

 

Output

 

对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。

 

SampleInput

 

3999897

4100999897

 

SampleOutput

 

98.00

98.50

 

5/55

 

#include

intmain()

{

doublea[100],n,max,min,ave;

inti;

while(scanf("%lf",&n)!

=EOF)

{

for(i=0;i

scanf("%lf",&a[i]);

max=a[0];

min=a[0];

ave=a[0];

for(i=1;i

{

if(a[i]>max)

max=a[i];

if(a[i]

min=a[i];

ave=ave+a[i];

}

ave=ave-max-min;

n=n-2;

printf("%.2lf\n",ave/n);

 

}return0;

 

}

 

6/55

 

陶陶摘苹果(1263)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

2869Accepted:

1783

 

Description

 

陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。

苹果成熟的

时候,陶陶就会跑去摘苹果。

陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

 

现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高

度,请帮陶陶算一下她能够摘到的苹果的数目。

假设她碰到苹果,苹果就会掉下来。

 

Input

 

输入用例包括两行数据。

第一行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。

第二行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

 

Output

 

输出结果包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

 

SampleInput

 

100200150140129134167198200111

110

 

SampleOutput

 

5

 

7/55

 

#include

intmain()

{

inta[11],n,i,j=0;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

scanf("%d",&n);

for(i=0;i<10;i++)

{

if(a[i]<=n+30)

j++;

}

printf("%d",j);

return0;

}

 

8/55

 

矩阵(1890)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

375Accepted:

172

 

Description

 

我们把N*N矩阵左上角的第一个元素a[1][1]定义为第一层,

把a[1][2],a[2][1],a[2][2]定义为第二层,依次,第三层,第四层...直到第N层。

每一层的数字都相同而且数值上等于层数。

 

现在给定一个正整数n,(1<=n<=1000),输出对应矩阵每一组输出之后再输出一个空行

 

Input

 

1

2

5

 

Output

 

1

 

12

22

 

12345

22345

33345

44445

55555

 

SampleInput

 

n

 

SampleOutput

 

9/55

 

输出对应的n*n阶矩阵

 

Hint

 

123456

223456

333456

444456

555556

666666

 

#include

intmain()

{

inti,n,k,l;

while(scanf("%d",&n)!

=EOF)

{

for(i=1;i<=n;i++)

{

for(k=1;k<=i;k++)

printf("%d",i);

for(l=i+1;l<=n;l++)

printf("%d",l);

printf("\n");

}

printf("\n");

 

}

return0;

}

 

10/55

 

逆序数字(1282)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

2904Accepted:

1559

 

Description

 

编写一个函数,接收一个整数值,返回这个数中数字逆序后的结果值。

例如,给定数7631,函数返回1367.

 

Input

 

第一行一个正整数T(T<=10),表示有T组测试数据;以下T行,每行一个非负的整数N。

 

Output

 

共T行,对于每组输入数据输出一行,即数字逆序后的结果值。

 

SampleInput

 

3

7631

101

51

 

SampleOutput

 

1367

101

15

 

11/55

 

#include

#include

intmain()

{

intn,i,j,t;

chara[100];

while(scanf("%d",&t)!

=EOF)

{

for(i=1;i<=t;i++)

{

scanf("%s",a);

getchar();

n=strlen(a);

for(j=n-1;j>=0;j--)

printf("%c",a[j]);

printf("\n");

}

}

 

}

 

12/55

 

打印菱形(1895)

 

Description

 

用*打印对应边长的空心菱形具体如样例

 

Input

 

菱形边长n,n<=100

 

Output

 

对应菱形

每组输出之后再输出空行

 

SampleInput

 

3

5

 

SampleOutput

 

*

**

**

**

*

 

*

**

**

**

**

**

**

**

*

 

13/55

 

#include

intmain()

{

intn,i,j;

while(scanf("%d",&n)!

=EOF)

{

for(i=1;i<=n;i++)

{

for(j=1;j<=n-i;j++)

printf("");

for(j=1;j<=i;)

{

printf("*");

j=j+i;

}

for(j=n-i+4;j<=n+i;j=j+1)

printf("");

if(i>1)

printf("*");

printf("\n");

}

for(i=n-1;i>=1;i--)

{

for(j=1;j<=n-i;j++)

printf("");

for(j=1;j<=i;)

{

printf("*");

j=j+i;

}

for(j=n-i+4;j<=n+i;j=j+1)

printf("");

if(i>1)

printf("*");

printf("\n");

}

printf("\n");

}

return0;

}

 

14/55

 

收入统计(1141)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

2110Accepted:

949

 

Description

 

一个马戏团来呼和浩特演出,n个座位全部坐满,全部门票收入是120元,现在知道,男人每人5元,女人每人2元,小孩每人1角。

现在请您编程帮助马戏团经理统计一下,n个座位中男人、女人和小孩的数目。

 

Input

 

由键盘输入至少一组测试数据,并且每一组测试数据是由整数n单独构成的一

行,n表示输入的总人数。

 

Output

 

对每一组测试数据,输出满足要求的男人、女人和小孩人数的全部方案(每种方案各占一行,人数间用英文状态下的逗号分隔)。

若n人无法满足条件,则输出"Nooutput"(双引号内的部分为输出部分)。

 

SampleInput

 

60

 

SampleOutput

 

0,60,0

19,11,30

 

15/55

 

#include"stdio.h"

intmain()

{

intn,m,s,i,p,b;doublea;

while(scanf("%d",&n)!

=-1)

{p=0;

for(i=0;i<=24;i++)

{

for(s=0;s<=n;s++)

{

a=(double)n-i-s;

if(120==a/10+s*2+i*5)

{

printf("%d,%d,%.0lf\n",i,s,a);p=1;

}

}

}

if(p==0){puts("Nooutput");}

}

return0;

}

 

16/55

 

九九乘法表(1892)

 

Description

 

小时候学过的九九乘法表也许将会扎根于我们一生的记忆,现在让我们重温那些温暖的记忆,请编程输出九九乘法表.

 

Input

 

第一有一个整数N,表示有N组数据(N<10)接下来由N行,每行只有一个整

数M(1<=M<=9);

 

Output

 

对应每个整数M,根据要求输出乘法表的前N行,具体格式参见输入输出样例和上图.每两组测试数据结果之间有一个空行隔开,具体如输出样例。

 

SampleInput

 

3

 

2

1

5

 

SampleOutput

 

1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=18

1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=9

 

1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=183*3=93*4=123*5=153*6=183*7=213*8=243*9=274*4=164*5=204*6=244*7=284*8=324*9=365*5=255*6=305*7=355*8=405*9=45

 

17/55

 

#include

intmain()

{

inta,b,c,d,i,j;

while(scanf("%d",&a)!

=EOF)

{

 

while(a--)

{

scanf("%d",&b);

for(i=1;i<=b;i++)

{

for(j=i;j<=9;j++)

printf("%d*%d=%d",i,j,i*j);

printf("\n");

}

printf("\n");

}

}

 

}

 

18/55

 

制作数字三角形(1422)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

1212Accepted:

802

 

Description

 

现在要用一组连续的数字,制作出一个近似倒直角三角形的形状,并用A表示

开始的数字,B表示高度。

 

Input

 

第一行有两个正整数A,B(A,B均小于10)。

 

Output

 

输出对应的数字三角形,每个数字之间空1个空格。

 

SampleInput

 

73

24

 

SampleOutput

 

789

1011

12

2345

678

910

11

 

19/55

 

#include

intmain()

{

inti,b,a,j;

while(scanf("%d%d",&a,&b)!

=EOF)

{

for(i=b;i>=1;i--)

{

for(j=1;j<=i;j++)

{

printf("%d",a);

a++;

}

printf("\n");

}

}

}

 

20/55

 

求素数的和(2011)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

845Accepted:

319

 

Description

 

求m-n范围内所有素数的和(1<=m<=n<1000)

 

Input

 

输入多组数据,每组中有两个整数m,n(1<=m<=n<1000)

 

Output

 

输出数据为一个整数,每个结果对应一行。

 

SampleInput

 

29

100500

 

SampleOutput

 

17

20476

 

21/55

 

#include

intmain()

{

inti,m,n,j,s;

while(scanf("%d%d",&m,&n)!

=EOF)

{

 

for(s=0,i=m;i<=n;i++)

{

for(j=2;j*j<=i;j++)

{

if(i%j==0)

break;

}

if(j*j>i)

s=s+i;

}

if(m==1)

printf("%d\n",s-1);

else

printf("%d\n",s);

}

}

 

22/55

 

最大公约数(初级)(1410)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

3561Accepted:

1834

 

Description

 

给定两个正整数,求它们的最大公约数。

 

Input

 

有多组数据,每行为两个正整数,且不超过int可以表示的范围。

 

Output

 

行对应输出最大公约数。

 

SampleInput

 

48

86

200300

 

SampleOutput

 

4

2

100

 

23/55

 

#include

intmain()

{

inti,m,n,x;

while(scanf("%d%d",&m,&n)!

=EOF)

{

if(m>n)

x=n;

if(m

x=m;

for(i=x;i>=1;i--)

{

if(n%i==0&&m%i==0)

break;

}

printf("%d\n",i);

}

 

}

 

24/55

 

最小公倍数(初级)(1411)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

3144Accepted:

1847

 

Description

 

给定两个正整数,求它们的最小公倍数。

 

Input

 

有多组数据,每行为两个正整数,且不超过int可以表示的范围。

 

Output

 

每行对应输出最小公倍数。

 

SampleInput

 

1121

2535

4454

 

SampleOutput

 

231

175

1188

 

25/55

 

#include

intmain()

{

inti,m,n,x;

while(scanf("%d%d",&m,&n)!

=EOF)

{

if(m

x=n;

else

x=m;

for(i=x;i<=n*m;i++)

if(i%n==0&&i%m==0)

break;

printf("%d\n",i);

}

return0;

}

 

26/55

 

平方和与立方和(1457)

 

TimeLimit:

1000MSMemoryLimit:

65536K

TotalSubmit:

2930Accepted:

794

 

Description

 

给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。

 

Input

 

输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。

 

Output

 

对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。

你可以认为32位整数足以保存结果。

 

SampleInput

 

13

25

 

SampleOutput

 

428

20152

 

27/55

 

#include

intmain()

{

inti,x,y,m,n,s,sum;

while(scanf("%d%d",&m,&n)!

=EOF)

{

if(m>n)

{

x=n;

y=m;

}

if(m

{

x=m;

y=n;

}

for(i=x,s=0,sum=0;i<=y;i++)

{

if(i%2==0)

s=s+i*i;

else

sum=sum+i*i*i;

}

printf("%d%d\n",s,sum);

 

}

return0;

}

 

28/55

 

斐波那契数列皇子会说话(2064)

 

Description

 

从前,有一个斐波那契数列皇子,

 

皇子啊!

他与别的斐波那契数列不同,他长这样:

 

F(0)=7,F

(1)=11,F(n)=F(n-1)+F(n-2)(n>=2).

 

对于任意整数n,当满足F(n)能被3整除是,皇子会大喊:

yes,不然他就会喊:

no

 

Input

 

Inputconsistsofasequenceoflines,eachcontaininganintegern.(n<1,000,000).

 

Output

 

Printtheword"yes"if3divideevenlyintoF(n).

 

Printtheword"no"ifnot.

 

SampleInput

 

0

1

2

3

4

5

 

SampleOutput

 

no

no

yes

no

no

 

29/55

 

no

#include

intmain()

{

intn;

while(scanf("%d",&n)!

=EOF)

if(n!

=0&&n%8==2||n!

=0&&n%8==6)

printf("yes\n");

else

printf("no\n");

}

 

30/55

 

求素数(1204)

 

TimeLimit:

1000MSMemoryLimit:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1