1.顺序结构
题目来源于洛谷
B2025 输出字符菱形
题目描述
用 *
构造一个对角线长 555 个字符,倾斜放置的菱形。
输入格式
没有输入要求。
输出格式
如样例所示。用 *
构成的菱形。
输入输出样例 #1
输入 #1
输出 #1
*
***
*****
***
*
ps;通过转义字符\n可以不用多行控制格式
代码如下:
#include<iostream>
using namespace std;
int main(){
cout<<" *\n ***\n*****\n ***\n *";
return 0;
return 0;
}
P1000 超级玛丽游戏
ps:使用c++的cout<<R"()"类似于python的’‘’ ‘’'可以保持段落的空格和空行
#include<iostream>
using namespace std;
int main(){
cout<<R"( ********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############)";
return 0;
}
P5704 【深基2.例6】字母转换
题目描述
输入一个小写字母,输出其对应的大写字母。例如输入 q[回车] 时,会输出 Q。
ps:使用ACII码直接解决
#include<iostream>
using namespace std;
int main(){
char input;
cin>>input;
int gap;//计算和'a'之间的距离
gap=(int)(input-'a');
cout<<(char)('A'+gap);
return 0;
}
pps:使用cctype中的toupper函数解决
P5705 【深基2.例7】数字反转
题目描述
输入一个不小于 100100100 且小于 100010001000,同时包括小数点后一位的一个浮点数,例如 123.4123.4123.4 ,要求把这个数字翻转过来,变成 4.3214.3214.321 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
输入输出样例 #1
输入 #1
123.4
输出 #1
4.321
ps:代码不是很简洁,f_back += (int)((f_initial - i_initial) * 10 + 0.5); 这一步加0.5的必要性已经解释(+0.5也可以在四舍五入的时候使用)
#include<iostream>
using namespace std;
int main() {
float f_initial, f_back = 0;
int i_initial, i_back = 0;
cin >> f_initial;
i_initial = (int)f_initial;
f_back += (int)((f_initial - i_initial) * 10 + 0.5);
//因为在计算机中如123.4储存方式可能是123.3999,此时转换成int就是3
for (int i = 3; i > 0; i--) {
i_back = i_back * 10 + i_initial % 10;
i_initial /= 10;
}
f_back += (float)i_back/ 1000;
cout << f_back;
return 0;
}
P5708 【深基2.习2】三角形面积
题目描述
一个三角形的三边长分别是 aaa、bbb、ccc,那么它的面积为 p(p−a)(p−b)(p−c)\sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c),其中 p=12(a+b+c)p=\frac{1}{2}(a+b+c)p=21(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 111 位小数。
输入格式
第一行输入三个实数 a,b,ca,b,ca,b,c,以空格隔开。
输出格式
输出一个实数,表示三角形面积。精确到小数点后 111 位。
输入输出样例 #1
输入 #1
3 4 5
输出 #1
6.0
说明/提示
数据保证能构成三角形,0≤a,b,c≤10000\leq a,b,c\leq 10000≤a,b,c≤1000,每个边长输入时不超过 222 位小数。
ps:使用cmath中的pow( ,)函数或者sqrt函数即可
P5707 【深基2.例12】上学迟到
题目描述
学校和 yyy 的家之间的距离为 sss 米,而 yyy 以 vvv 米每分钟的速度匀速走向学校。
在上学的路上,yyy 还要额外花费 101010 分钟的时间进行垃圾分类。
学校要求必须在上午 8:00\textrm{8:00}8:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。
由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。
输入格式
一行两个正整数 s,vs,vs,v,分别代表路程和速度。
输出格式
输出一个 242424 小时制下的时间,代表 yyy 最晚的出发时间。
输出格式为 HH:MM\texttt{HH:MM}HH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 000。
输入输出样例 #1
输入 #1
100 99
输出 #1
07:48
说明/提示
对于 100%100\%100% 的数据,1≤s,v≤1041 \le s,v \le 10^41≤s,v≤104。
ps:心路历程:1.刚开始对min处理使用四舍五入,也就是有小数就向前加一,但是如果恰好是整数的测试数据就会出问题(多加1)
2.对于数据60 1的整小时情况,不分类的话就会出现6:60的情况
所以最终选择if-else大法,成功AC
#include<iostream>
using namespace std;
int main() {
int s, v, min, hour;
cin >> s >> v;
if (s % v == 0)min = s / v + 10;
else min = int(s / v) + 11;
if (min % 60 == 0)hour = (8 - min / 60 + 24) % 24;
else hour = (7 - (int)min / 60 + 24) % 24;
if (min % 60 != 0)min = 60 - min % 60;
else min = 0;
printf("%02d%c%02d", hour, ':', min);
return 0;
}
B2029 大象喝水
题目描述
一只大象口渴了,要喝 202020 升水才能解渴,但现在只有一个深 hhh 厘米,底面半径为 rrr 厘米的小圆桶 (hhh 和 rrr 都是整数)。问大象至少要喝多少桶水才会解渴。
Update:数据更新,这里我们近似地取圆周率 π=3.14\pi = 3.14π=3.14。
输入格式
输入有一行:包行两个整数,以一个空格分开,分别表示小圆桶的深 hhh 和底面半径 rrr,单位都是厘米。
输出格式
输出一行,包含一个整数,表示大象至少要喝水的桶数。
输入输出样例 #1
输入 #1
23 11
输出 #1
3
说明/提示
数据规模与约定
对于全部的测试点,保证 1≤h≤5001 \leq h \leq 5001≤h≤500,1≤r≤1001 \leq r \leq 1001≤r≤100。
ps:小心思全在0.9999上面了,简单实现向上取整,只要你有一点小数,我就送你加一
#include<iostream>
#define PI 3.14
using namespace std;
int main(){
int a,b,v;
cin>>a>>b;
v = (int)(20000 / (PI * a * b*b) + 0.99999);
cout << v;
return 0;
}