前言:
《信息学奥赛一本通刷题记录》是花某新在公众号开辟的一个辅板块,但公众号主题还是以网络安全技术研究为主只是有时发布网络安全技术内容时,会偶尔附带一条信息奥赛一本通刷题记录的文章
(就像这样)
目的也是扩大公众号的受众范围哈哈。
正文第一章:
第一章相对于CSP受众来说个人感觉是一个建立自信的一章,也是入门的一章。
1000:入门测试题目:
题目重点:输入,整数和,输出时空格隔开
所以先要声明两个整数变量,后输入流对象用于赋值给整数变量,最后输出相加结果且结果要换行,所以可以在输出流中插入换行符。
解题代码:
using namespace std;
int main()
{
int a,b;
cin >> a >> b;
cout << a+b << endl;
return 0;
}
2060:【例1.1】计算机输出:
这题没什么好说的直接使用输出流输出hello word就行,这个也是每个学过c++的都会解的题吧应该。
解题代码:
using namespace std;
int main()
{
cout<<"Hello World!";
return 0;
}
2061:【例1.2】梯形面积:
一道非常简单的中学几何计算题,解题重点就是:
三角形面积 = 底 * 高 / 2
梯形面积 = (上底 + 下底) * 高 / 2
且程序在输出时要控制输出小数点位数,变量中也是存在小数点的所以要使用浮点型的变量,花某的程序思路就是先算出高后在求出梯形面积。
解题代码:
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即可。
解题代码:
using namespace std;
int main()
{
int x;
cin>>x;
cout<<x<<" "<<x*10;
}
2063:【例1.4】牛吃牧草:
这题同样是考察数学能力的题,我看很多人解题都加了变量计算相当于列方程去计算,但题目中其实是没给出变量的,所以我们也可以不要定义变量直接计算机即可得出结果
解题代码:
using namespace std;
int main()
{
cout << (15 * 20 - 20 * 10) / (20 - 10);
return 0;
}
1001:Hello,World!:
这题也没什么好说的和上文输出helloword的如出一辙,甚至比上文的简单。
解题代码:
using namespace std;
int main()
{
cout<<"Hello,World!";
return 0;
}
1002:输出第二个整数:
看着绕,实则很简单就是定义三个整数变量后按输入数据给变量赋值后输出最中间的变量。
解题代码:
using namespace std;
int main()
{
int a,b,c;
cin>>a>>b>>c;
cout<<b;
return 0;
}
1003:对齐输出
1003:对齐输出:
解题重点:8个字符的宽度
还是可以直接定义三个变量,后面输出时使用printf函数占位符输出
解题代码:
using namespace std;
int main ()
{
int a,b,c;
cin >>a>>b>>c;
printf("%8d %8d %8d",a,b,c);
return 0;
}
1004:字符三角形:
用一个字符构造三角形,因为本章为入门章所以我们可以直接使用入门的cout解题,思路也很简单,就是每个字符的每行达到题目输出样例要求时就换行继续输出字符直到第三层全部输出完成。
解题代码:
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位所以还是要定义浮点型变量把它们的结果做个整合。
解题代码:
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安全混子):信息学奥赛一本通第一章解题记录
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论