算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)

难度参考

        难度:简单

        分类:熟悉OJ与IDE的操作

        难度与分类由我所参与的培训课程提供,但需要注意的是,难度与分类仅供参考。以下内容均为个人笔记,旨在督促自己认真学习。

题目

A + B 1. A + B - AcWing题库
财务管理 1004:财务管理
实现四舍五入 实现四舍五入
牛牛的字符菱形 牛牛的字符菱形

题解

A+B

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第1张图片 A+B流程图

        

#include 
#include 

using namespace std;

int a,b;
int main(){
    cin>>a>>b;
    cout<

        时间复杂度为O(1)。

        空间复杂度也是O(1)。

        本题据说还有十几种其他恶搞版题解,待学成之后仔细研究一下。

财务管理

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第2张图片 财务管理流程图
#include 
#include   // 用于设置输出格式

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 
#include 
using namespace std;

int main() {
    double floatingNumber;
    cin >> floatingNumber;

    // 将浮点数四舍五入并转换为整数
    int roundedNumber = round(floatingNumber);

    cout << roundedNumber << endl;

    return 0;
}

         时间复杂度为O(1)。

        空间复杂度也是O(1)。

        不过常见的做法是利用加减0.5后强制转化后实现四舍五入。加减的原因是正数为加,负数为减。

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第3张图片 四舍五入流程图
#include 
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 
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)。

        动点脑子。

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第4张图片 打印菱形流程图
#include 
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;
}

思路

  1. 首先,我们从用户那里接收一个字符作为输入,并将其存储在变量ch中。

  2. 然后,我们使用两个循环来打印菱形图案。上半部分的循环用于打印每一行的空格和字符,下半部分的循环用于打印下半部分的空格和字符。

  3. 对于上半部分的循环,我们使用一个外层循环来迭代打印每一行。循环变量i的范围是从1到3,即打印3行。每一行前面的空格的数量是3 - i,通过内层循环来输出。

  4. 内层循环使用变量j从1递增到(2 * i - 1)来打印每一行的字符(ch)。这是因为每一行的字符数量符合等差数列的规律,首项是 1,公差是 2。

  5. 上半部分的循环结束后,我们开始打印下半部分的菱形图案。这里我们使用一个外层循环来迭代打印每一行。循环变量i的范围是从2到1,即打印2行。每一行前面的空格的数量是3 - i,通过内层循环来输出。

  6. 内层循环同样使用变量j从1递增到(2 * i - 1)来打印每一行的字符(ch)。

  7. 最后,我们通过输出换行符来确保每一行之后都换行。

打卡

        A+B

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第5张图片

        财务管理

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第6张图片

        实现四舍五入

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第7张图片

        牛牛的字符菱形

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)_第8张图片

你可能感兴趣的:(算法编程笔记,算法,c++,leetcode)