难度参考
难度:简单
分类:熟悉OJ与IDE的操作
难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。
题目
A + B | 1. A + B - AcWing题库 |
财务管理 | 1004:财务管理 |
实现四舍五入 | 实现四舍五入 |
牛牛的字符菱形 | 牛牛的字符菱形 |
题解
A+B
#include <iostream>
#include <cstdio>
using namespace std;
int a,b;
int main(){
cin>>a>>b;
cout<<a+b<<endl;
return 0;
}
时间复杂度为O(1)。
空间复杂度也是O(1)。
本题据说还有十几种其他恶搞版题解,待学成之后仔细研究一下。
财务管理
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;
int main() {
double sum = 0.0; // 初始化总结余为0
double balance; // 用于存储每个月的结余
for (int i = 0; i < 12; i++) {
cin >> balance; // 输入每个月的结余
sum += balance; // 累加到总结余中
}
double average = sum / 12.0; // 计算平均月末结余
// 设置输出格式,保留两位小数,并在前面加上"$"符号
cout << fixed << setprecision(2) << "$" << average << endl;
return 0;
}
时间复杂度为O(1)。(循环次数固定)
空间复杂度也是O(1)。
使用iomanip库,可以直接用fixed去保留小数个数。
实现四舍五入
使用cmath库的话,里面有直接的四舍五入的函数。
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double floatingNumber;
cin >> floatingNumber;
// 将浮点数四舍五入并转换为整数
int roundedNumber = round(floatingNumber);
cout << roundedNumber << endl;
return 0;
}
时间复杂度为O(1)。
空间复杂度也是O(1)。
不过常见的做法是利用加减0.5后强制转化后实现四舍五入。加减的原因是正数为加,负数为减。
#include <iostream>
using namespace std;
int main() {
float a;
int b;
cin >> a;
// 判断浮点数的小数部分是否大于等于0.5
if (a >= 0) {
b = a + 0.5;
} else {
b = a - 0.5;
}
cout << b << endl;
return 0;
}
时间复杂度为O(1)。
空间复杂度也是O(1)。
牛牛的字符菱形
明显的懒鬼做法。
#include <iostream>
using namespace std;
int main() {
char a;
cin >> a;
cout << " " << " " << a << " " << " " << endl;
cout << " " << a << a << a << " " << endl;
cout << a << a << a << a << a << endl;
cout << " " << a << a << a << " " << endl;
cout << " " << " " << a << " " << " " << endl;
}
时间复杂度为O(1)。
空间复杂度也是O(1)。
动点脑子。
#include <iostream>
using namespace std;
int main() {
char ch;
cin >> ch;
// 上半部分菱形
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3 - i; j++) {
cout << " ";
}
for (int j = 1; j <= 2 * i - 1; j++) {
cout << ch;
}
cout << endl;
}
// 下半部分菱形
for (int i = 2; i >= 1; i--) {
for (int j = 1; j <= 3 - i; j++) {
cout << " ";
}
for (int j = 1; j <= 2 * i - 1; j++) {
cout << ch;
}
cout << endl;
}
return 0;
}
思路
-
首先,我们从用户那里接收一个字符作为输入,并将其存储在变量
ch
中。 -
然后,我们使用两个循环来打印菱形图案。上半部分的循环用于打印每一行的空格和字符,下半部分的循环用于打印下半部分的空格和字符。
-
对于上半部分的循环,我们使用一个外层循环来迭代打印每一行。循环变量
i
的范围是从1到3,即打印3行。每一行前面的空格的数量是3 - i
,通过内层循环来输出。 -
内层循环使用变量
j
从1递增到(2 * i - 1)
来打印每一行的字符(ch
)。这是因为每一行的字符数量符合等差数列的规律,首项是 1,公差是 2。 -
上半部分的循环结束后,我们开始打印下半部分的菱形图案。这里我们使用一个外层循环来迭代打印每一行。循环变量
i
的范围是从2到1,即打印2行。每一行前面的空格的数量是3 - i
,通过内层循环来输出。 -
内层循环同样使用变量
j
从1递增到(2 * i - 1)
来打印每一行的字符(ch
)。 -
最后,我们通过输出换行符来确保每一行之后都换行。
打卡
A+B
财务管理
实现四舍五入
牛牛的字符菱形