一维数组基础(题目+答案)

第1题     反向输出     时限:1s 空间:256m

输入n个数,要求程序按输入时的逆序把这n个数打印出来,已知整数不超过100个。也就是说,按输入相反顺序打印这n个数。

输入格式

第一行:一个整数n,代表n个数;

第二行:n个数的具体数值,每个数之间用空格隔开。

输出格式

一行,共有n个数,每个数之间用一个空格隔开。

输入/输出例子1

输入:

5

1 7 3 4 5

输出:

5 4 3 7 1

作答区域

#include
using namespace std;
long long n,a[200];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=n;i>=1;i--)
    cout<
 
第2题     数列     时限:1s 空间:256m

已知一个数列的前几个数是: 1, 1, 2, 3, 5, 8, 13, 21,.. 编程实现输入一个整数N,输出第N项是多少。例如输入输出3N小于等于20

输入格式

输入t ,随后输入t个要查找的数

输出格式

t行,分别表示要查找的数

输入/输出例子1

输入:

5

1

2

3

4

5

输出:

1

1

2

3

5

作答区域

#include
using namespace std;
long long a[50],n,x;
int main(){
    cin>>n;
    a[1]=1,a[2]=1;
    for(int i=3;i<=30;i++)
        a[i]=a[i-1]+a[i-2];
    for(int i=1;i<=n;i++)
    {
        cin>>x;
        cout<
第3题     比身高     时限:1s 空间:256m

信息学班有n个人排成一排,假设他们的身高都是正整数,请找出其中符合以下条件的人:排在他前面且比他高的人数与排在他后面且比他高的人数相等。

输入格式

第一行一个正整数n,1

下面n行,每行一个正整数,表示从前往后每个人的身高,假设每个人的身高<=10000。

输出格式

一行一个整数,表示满足这个条件的人数。

输入/输出例子1

输入:

4

1

2

1

3

输出:

2

样例解释

第3、第4个人满足条件。

作答区域

 
#include
using namespace std;
long long n,a[2000],s,s1,s2;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=1;i<=n;i++)
    {
        s1=0,s2=0;
        for(int j=i-1;j>=1;j--)
            if(a[j]>a[i])s1++;
        for(int j=i+1;j<=n;j++)
            if(a[j]>a[i])s2++;
        if(s1==s2)s++;
    }
    cout<

第4题     身高1     时限:1s 空间:256m

HJ信息学班今年又扩招了,今年除了招了HJ小学的各个年级的同学以外,还在NH星球找了一些巨人学霸加入了信息学班。巨人学霸的大都是非常高的,但是他们的高度不超过长整型。现在ShenLin想知道,信息学班中高度为k的巨人学霸有多少个?

输入格式

第一行一个正整数n,1<=n<=10^6。

第二行n个正整数,之间用一个空格隔开,表示n个巨人学霸的身高。

第三行一个正整数k,k的值不超过长整型。

输出格式

一行一个整数,表示高度为k的巨人学霸的数量,如果没有就输出0。

输入/输出例子1

输入:

5

300  400  500  200  300 

300

输出:

2

作答区域

 
#include
using namespace std;
long long n,x,a[1000005],s;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    cin>>x;
    for(int i=1;i<=n;i++)
        if(a[i]==x)s++;
    cout<

第5题     珠子     时限:1s 空间:256m

BessieN1≤N≤100)粒蓝色和橙色的珠子连成了一串,问有多少对珠子(相邻的)是不同颜色的。

输入格式

第一行,一个整数N

第二行,N个数字(01),其中0表示橙色,1表示蓝色。

输出格式

输出相邻两粒珠是不同颜色的对数。

输入/输出例子1

输入:

6

1 0 0 1 1 1

输出:

2

输入/输出例子2

输入:

3

1 1 0

输出:

2

作答区域

 
#include
using namespace std;
long long n,a[200],s;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;i

第6题     骰子     时限:1s 空间:256m

骰子(tóu zi)。中国传统民间娱乐用来投掷的博具。早在战国时期就有。通常作为桌上游戏的小道具,最常见的骰子是六面骰,它是一颗正立方体,上面分别有一到六个孔(或数字),其相对两面之数字和必为七。中国的骰子习惯在一点和四点漆上红色,其余是黑色。现在小Q桌子上摆着N个骰子,他想将x至y连续一段的骰子翻转一面(比如将1面的骰子翻到6面),请你找出这N个骰子最后的点数?

输入格式

第一行一个整数N,表示桌子上有 N 个硬币,N的范围是[3,100].

第二行为 N个数字表示骰子的初始情况。

第三行为两个整数x和y,表示x至y连续一段需要翻转。

输出格式

一行 N个数字,表示骰子的翻转后的情况。

输入/输出例子1

输入:

5

2 5 1 1 4

2 4

输出:

2 2 6 6 4

输入/输出例子2

输入:

10

6 5 4 3 2 1 4 3 2 2

8 3

输出:

6 5 3 4 5 6 3 4 2 2

作答区域

 
#include
using namespace std;
long long n,x,y,a[200];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    cin>>x>>y;
    if(x>y)swap(x,y);
    for(int i=x;i<=y;i++)
    {
        if(a[i]==1)a[i]=6;
        else if(a[i]==2)a[i]=5;
        else if(a[i]==3)a[i]=4;
        else if(a[i]==4)a[i]=3;
        else if(a[i]==5)a[i]=2;
        else if(a[i]==6)a[i]=1;
    }
    for(int i=1;i<=n;i++)
        cout<

第7题     马里奥找中等的银币     时限:1s 空间:256m

勤劳的马里奥存了很多银币之后,担心自己坐吃山空,于是他决定好好学习,不断充实自己。这天马里奥学到了平均值的概念,在数学中,我们用所有数的总和 / 所有数的总个数得到平均数;比如说,数字3 6 12三个整数,平均值 = (3 + 6 + 12) / 3 = 7;而数字3 10两个整数,平均值 = (3 + 10) / 2 = 6.5

学会平均值的概念之后,马里奥想要知道,他所有的银币中,最接近所有银币金额平均值的银币,金额是多少?

比如:假设马里奥存有的银币金额分别为8 5 2 8 2 4,那么这几个银币的平均值是4.83333,最接近这个平均值的银币的金额,应当是5

输入格式

第一行是一个整数n代表马里奥有n个银币(n<=1000

第二行有n个整数,用空格隔开,代表马里奥每个银币的金额 ,数据范围为[1,1000]

输出格式

一个整数,代表最接近所有银币总金额平均值的那个银币的金额
(所有数据保证,最接近平均值的银币的金额是唯一的,也就是说答案只有1个。如果存在下面这种情况,比如有4个银币,8, 5, 1平均值是4.5,金额4和金额5,都是最接近的,则认为答案是最早出现的那个,即4

输入/输出例子1

输入:

6

8 2 7 8 2 4

输出:

4

作答区域

 
#include
using namespace std;
double s,n,a[1005],minn=1005,x,m;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        s=s+a[i];
    }
    m=s/n;
    for(int i=1;i<=n;i++)
    {
        if(abs(m-a[i])

第8题     平均分 (课程B)     时限:1s 空间:256m

有N个学生考了OI测试,请编程帮助老师统计有多少学生没有达到平均分?

输入格式

 一行1个正整数:N,范围在[1,100]。
 第二行N个整数:学生的成绩,每个数范围在[0, 600]。

输出格式

 一个整数,表示有多少学生的分数没有达到平均分。

输入/输出例子1

输入:

 5
 100  200  300  400  500

输出:

2

作答区域

 
#include
using namespace std;
double s,n,a[10005],m;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        s=s+a[i];
    }
    m=s/n,s=0;
    for(int i=1;i<=n;i++)
        if(a[i]

第9题     差距 (课程B)     时限:1s 空间:256m

有N个学生考了OI测试,最高分是大家崇拜的大牛,每个人都想知道与大牛的分数差距,请编程计算。

输入格式

一行1个正整数:N,范围在[1,100]。
 第二行N个整数:学生的成绩,每个数范围在[0,600]。

输出格式

 N个整数,表示每个学生的分数和最高分的差距。

输入/输出例子1

输入:

5
 100  200  300  400  500

输出:

 400  300  200  100  0

作答区域

 
#include
using namespace std;
long long n,maxx=0,a[200];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]>maxx)maxx=a[i];
    }
    for(int i=1;i<=n;i++)
        cout<

第10题     峰值 (课程B)     时限:1s 空间:256m

输入 N 个整数,表示股票指数的N个时刻的值,如果有一个时刻的值比前一刻和后一刻的值都大,就称为一个高峰值,计算共有多少个高峰?
注:第1个和最后一个值不能算高峰。

输入格式

 第一行1个整数n,范围在[1,100]。
 第二行有n个[1,10000]范围的整数,整数间用一个空格分隔。

输出格式

只一个整数,高峰的个数。

输入/输出例子1

输入:

  7
  7  12  8  8  5  6  4

输出:

2

作答区域

 
#include
using namespace std;
long long n,s,a[200];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=2;ia[i-1]&&a[i]>a[i+1])s++;
    cout<

第11题     登山 (课程B)     时限:1s 空间:256m

输入 N 个整数,记录你要走的线路地形的高度。如果某个高度比下一个高度低,则要向上爬。向上爬要额外消耗体能,消耗的值等于高度差。问总共额外消耗了多少体能?

输入格式

 第一行1个整数n,范围在[1,100]。
 第二行有n个[1,10000]范围的整数,整数间用一个空格分隔。

输出格式

 只一个整数,额外消耗的体能数。

输入/输出例子1

输入:

  7
  7  12  8  8  5  6  4

输出:

6

样例解释: (12-7)+(6-5) = 5+1=6

作答区域

 
#include
using namespace std;
long long n,s,a[200];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=1;i

第12题     看的最远 (课程B)     时限:1s 空间:256m

有N(奇数)只奶牛排成一行,为了安全2头最高大的奶牛排在队伍前端(最左边)和后端(最右边)。这些奶牛不习惯抬头,向前或向后看时,看到有和它同样高或比它高的奶牛就会被挡住视线,它会认为那就是最远的牛。
输入每头奶牛的身高,请问正中间的那头奶牛向前向后看,以为队伍的长度是多少?

输入格式

第一行1个奇整数:N,范围在[3,1000]。
 第2行有N个不同的正整数,范围在[1,1000]。

输出格式

 一个整数,队伍长度。

输入/输出例子1

输入:

9
 20  5  10  4  10  6  1  8  20

输出:

 7
解释:中间第5个高度为10的奶牛,最远只看到前面的高度为10的第3只奶牛和后面的高度为20的奶牛,以为队伍是 10  4  10  6  1  8  20

作答区域

 
#include
using namespace std;
long long s=1,w,n,a[2000];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    w=n/2+1;
    for(int i=w-1;i>=1;i--)
    {
        s++;
        if(a[w]<=a[i])break;
    }
    for(int i=w+1;i<=n;i++)
    {
        s++;
        if(a[w]<=a[i])break;
    }
    cout<

第13题     滑雪 (课程B)     时限:1s 空间:256m

输入 N个不同的整数,记录了滑雪线路的地形高度。要求先从前面走到最高点,再开始向后滑雪,滑雪中如果遇到某个的地形比前面的地形高,就会停止,求滑了多少距离?

输入格式

第一行1个整数n,范围在[1,100]。
第二行有n个[1,10000]范围的整数,整数间用一个空格分隔。

输出格式

只一个整数,滑雪的距离。

输入/输出例子1

输入:

8
 7  12  8  6  5  4  9  1

输出:

5
 

样例解释

样例解释:最高点是第2个数据12,滑到第7个数据9停止(9比前面的4大),7-2=5。

作答区域

 
#include
using namespace std;
long long n,a[200],maxx=0,maxi,ans=1;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]>maxx)maxx=a[i],maxi=i;
    }
    for(int i=maxi;ia[i+1])ans++;
        else break;
    }
    cout<

第14题     double定义与小数输出     时限:1s 空间:256m

#include

using namespace std;

int a,b; //定义整型变量a,b ,,可存储整数 

double c,d; //定义双精度浮点型变量c,d ,,可存储小数 

int main()

{

a=2;

b=3;

c=1.9;

d=2.5;

cout<

cout<

cout<

// <

return 0;

}

输入格式

东方博宜OJ       问题列表-东方博宜OJ

完成以下题目::能做多少就做多少!!加油,老师相信你是最棒的!

一维数组基础(题目+答案)_第1张图片

提醒::该网站为其他地区的网站,学校没有管理权,如果你忘记密码,是没有办法找回的!!!教师是不能帮你重置密码的!!

输出格式

提醒::该网站为其他地区的网站,学校没有管理权,如果你忘记密码,是没有办法找回的!!!教师是不能帮你重置密码的!!

勤思考,多练习!

输入/输出例子1

输入:

提醒::该网站为其他地区的网站,学校没有管理权,如果你忘记密码,是没有办法找回的!!!教师是不能帮你重置密码的!!

输出:

提醒::该网站为其他地区的网站,学校没有管理权,如果你忘记密码,是没有办法找回的!!!教师是不能帮你重置密码的!!

注:此题无解答,只是让你们熟悉一下  double定义与小数输出  而已!!!

第15题     平均分     时限:1s 空间:256m
有N个学生考了OI测试,请编程帮助老师统计有多少学生没有达到平均分?

输入格式

一行1个正整数:N,范围在[1,100]。
 第二行N个整数:学生的成绩,每个数范围在[0, 600]。

输出格式

一个整数,表示有多少学生的分数没有达到平均分。

输入/输出例子1

输入:5
 100  200  300  400  500

输出:

2

作答区域

 
#include
using namespace std;
long long n,a[200],s1;
double s;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        s=s+a[i];
    }
    s=s/n;
    for(int i=1;i<=n;i++)
        if(a[i]

你可能感兴趣的:(#,C++的各种算法及习题,算法,数据结构,c++,开发语言)