开始: 2022-03-06 20:50:00

2022年3月双周赛(初级班)

结束: 2022-03-06 22:25:00
当前: 2025-0505-3131 12:45:32  类型:OI 状态:已经结束 

陶陶摘苹果

 

有10个苹果,陶陶想要摘苹果,但是陶陶把手伸直的时候不一定能摘到,于是他拿来了30厘米高的小板凳,这样陶陶总的高度就是陶陶把手伸直的时候能够达到的最大高度+30了。如果这个高度比苹果的高度高,那么就可以摘到苹果,cnt++。

 

具体思路:

 

(1)定义数组a[10]用于储存10个苹果高度,h存放板凳和手身高度之和(即陶陶达到的最大高度),x为陶陶把手伸直的时候能够达到的最大高度,cnt=0存储摘到苹果的数目。

 

(2)循环读入10个苹果高度存到a[0]-a[9]数组变量中。

 

(3)读入陶陶把手伸直的时候能够达到的最大高度x ,加上板凳的高度可以计算出h=x+30。

 

(4)循环i从0~9,如果h>=a[i],则摘下苹果的数目加1,即cnt++。

 

(5)输出cnt的值。

 

代码如下:

#include<bits/stdc++.h>

using namespace std;

int main()

{

int a[10];//定义10个用来存放苹果高度的数组元素

 int h,x,cnt=0;

 for(int i=0;i<=9;i++) cin>>a[i];// 读入10个苹果高度存到a[0]-a[9]中

 cin>>x;

 h=x+30;

 for(int i=0;i<=9;i++) if(h>=a[i]) cnt++;//如果陶陶达到的高度>=a[i],则摘下的数目加1

 cout<<cnt;//输出

 return 0;

}

上述思路需要用到数组,但本题没学过数组依然能解决,只是略显麻烦,只需要定义十个变量分别存储十个苹果的高度即可。

 

代码如下:

#include<bits/stdc++.h>

using namespace std;

int main()

{

 int a0,a1,a2,a3,a4,a5,a6,a7,a8,a9;//定义10个用来存放苹果高度的数组元素

 int h,x,cnt=0;

 cin>>a0>>a1>>a2>>a3>>a4>>a5>>a6>>a7>>a8>>a9;

 cin>>x;

 h=x+30;

 if(h>=a0) cnt++;

 if(h>=a1) cnt++;

 if(h>=a2) cnt++;

 if(h>=a3) cnt++;

 if(h>=a4) cnt++;

 if(h>=a5) cnt++;

 if(h>=a6) cnt++;

 if(h>=a7) cnt++;

 if(h>=a8) cnt++;

 if(h>=a9) cnt++;

 cout<<cnt;//输出

 return 0;

}

 

级数求和

 

从1开始枚举n,每次累加Sn,直到Sn>k结束,只需要一个循环即可实现。需要注意Sn应为小数,并注意整除和小数除法的区别。

 

代码如下:

#include<bits/stdc++.h>

using namespace std;

int main()

{

 int k;

 cin>>k;

 double Sn=0;

 int n=0;

 while(Sn<=k)//当Sn>k时,跳出循环

 {

   n++;

   Sn+=1.0/n;//注意此处为小数除法

 }

 cout<<n;

 return 0;

}

 

其余两道题均为题库原题,分别为380和1190,可以自行查看视频讲解并订正。

 

这次比赛暴露出一些问题:

1.部分同学每道题都做了,每道题都编译错误,而这是很容易在本地检查出来的,这提醒我们需要在本地运行正确并通过样例之后再提交,这种问题是完全可以避免的。

2.部分同学输出了提示语,如 cout << "输入两个数: ";,这是不需要的,输出了多余的输出会被判定为解答错误,只需要按照题目里的输入输出做即可。

 

由于大家学习进度不同,题目很难照顾到每个人的水平,大家的分数差异较大,考的不理想的同学不用灰心,只需要把目前学到的内容好好掌握,一步一步来,总有一天能够达到理想的境界。