信息学奥赛一本通第一章解题记录

admin 2024年4月24日03:27:39评论7 views字数 2160阅读7分12秒阅读模式

前言:

  《信息学奥赛一本通刷题记录》是花某新在公众号开辟的一个辅板块,但公众号主题还是以网络安全技术研究为主只是有时发布网络安全技术内容时,会偶尔附带一条信息奥赛一本通刷题记录的文章

信息学奥赛一本通第一章解题记录

(就像这样)

目的也是扩大公众号的受众范围哈哈。

正文第一章:

  第一章相对于CSP受众来说个人感觉是一个建立自信的一章,也是入门的一章。

信息学奥赛一本通第一章解题记录

1000:入门测试题目:

信息学奥赛一本通第一章解题记录

题目重点:输入,整数和,输出时空格隔开

所以先要声明两个整数变量,后输入流对象用于赋值给整数变量,最后输出相加结果且结果要换行,所以可以在输出流中插入换行符

解题代码:

  #include <iostream>    using namespace std;    int main(){        int a,b;        cin >> a >> b;        cout << a+b << endl;        return 0;    }

信息学奥赛一本通第一章解题记录

2060:【例1.1】计算机输出:


信息学奥赛一本通第一章解题记录

这题没什么好说的直接使用输出流输出hello word就行,这个也是每个学过c++的都会解的题吧应该。

解题代码:

#include<bits/stdc++.h>using namespace std;int main(){    cout<<"Hello World!";     return 0;}

信息学奥赛一本通第一章解题记录

2061:【例1.2】梯形面积:

信息学奥赛一本通第一章解题记录

一道非常简单的中学几何计算题,解题重点就是:

三角形面积 = 底 * 高 / 2
梯形面积 = (上底 + 下底) * 高 / 2

且程序在输出时要控制输出小数点位数,变量中也是存在小数点的所以要使用浮点型的变量,花某的程序思路就是先算出高后在求出梯形面积。

解题代码:

#include<bits/stdc++.h>using namespace std;int main(){    double h = 150 * 2 / 15;    cout << fixed << setprecision(2) << (15 + 25) * h / 2;    return 0;}

信息学奥赛一本通第一章解题记录

2062:【例1.3】电影票:

信息学奥赛一本通第一章解题记录

解题重点:输出人数和电影票总价空格隔开

  因为票价是整数且人数也一定是整数,所以直接定义整形变量即可,因为题中变量只有一个x所以只需定义一个变量人数x最后乘10即可。

解题代码:

#include <iostream>using namespace std;int main(){    int x;    cin>>x;    cout<<x<<" "<<x*10;}

信息学奥赛一本通第一章解题记录

信息学奥赛一本通第一章解题记录

2063:【例1.4】牛吃牧草:

信息学奥赛一本通第一章解题记录这题同样是考察数学能力的题,我看很多人解题都加了变量计算相当于列方程去计算,但题目中其实是没给出变量的,所以我们也可以不要定义变量直接计算机即可得出结果

解题代码:

#include<bits/stdc++.h>using namespace std;int main(){    cout << (15 * 20 - 20 * 10) / (20 - 10);    return 0;}

信息学奥赛一本通第一章解题记录

1001:Hello,World!:

信息学奥赛一本通第一章解题记录

这题也没什么好说的和上文输出helloword的如出一辙,甚至比上文的简单。

解题代码:

#include<iostream>using namespace std;
int main(){ cout<<"Hello,World!"; return 0;}

信息学奥赛一本通第一章解题记录

1002:输出第二个整数:


信息学奥赛一本通第一章解题记录

看着绕,实则很简单就是定义三个整数变量后按输入数据给变量赋值后输出最中间的变量。

解题代码:

#include<iostream>using namespace std;int main(){    int a,b,c;    cin>>a>>b>>c;    cout<<b;    return 0;}

信息学奥赛一本通第一章解题记录1003:对齐输出


1003:对齐输出:


信息学奥赛一本通第一章解题记录

解题重点:8个字符的宽度

还是可以直接定义三个变量,后面输出时使用printf函数占位符输出

解题代码:

#include <iostream>#include <cstdio>using namespace std;int main (){    int a,b,c;    cin >>a>>b>>c;    printf("%8d %8d %8d",a,b,c);    return 0; }

信息学奥赛一本通第一章解题记录


1004:字符三角形:

 

信息学奥赛一本通第一章解题记录

用一个字符构造三角形,因为本章为入门章所以我们可以直接使用入门的cout解题,思路也很简单,就是每个字符的每行达到题目输出样例要求时就换行继续输出字符直到第三层全部输出完成。

解题代码:

#include<iostream>using namespace std;int main(){char a;cin>>a; cout<<"  "<<a<<endl<<" "<<a<<a<<a<<endl<<a<<a<<a<<a<<a; }

信息学奥赛一本通第一章解题记录


1005:地球人口承载力估计:

信息学奥赛一本通第一章解题记录

也是属于难度集中在数学解题上的一道题首先定义四个变量,x,a,y,b然后看输入样例处可直接带入这些数字在变量处。

解题:

x=110  a=90

y=90    b=210

110*90=9900

210*90=18900

210-90=120    

(18900-9900)/120=75

信息学奥赛一本通第一章解题记录


然后把解题过程写成代码即可,结尾保留2位所以还是要定义浮点型变量把它们的结果做个整合。

解题代码:

#include <bits/stdc++.h>using namespace std;
int main(){ int x,a,y,b; float n; cin >> x >> a >> y >> b; n = (b*y - a*x) / (b - a); printf("%.2lf",n); return 0;}

信息学奥赛一本通第一章解题记录

原文始发于微信公众号(flower安全混子):信息学奥赛一本通第一章解题记录

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月24日03:27:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   信息学奥赛一本通第一章解题记录https://cn-sec.com/archives/2084921.html

发表评论

匿名网友 填写信息