20250224-Rain

1. 运算符

/*
1. 
设计一个程序, 输入整数l, 求边长为l的正方形面积, 比直径为l的圆形面积大多少.
(0<l<1000, PI取3.14, 输出结果保留两位小数)
*/

#include <iostream>
#include <ios>
#include <iomanip>
// #include <stdio>
#define PI 3.14

using namespace std;

int main(void)
{
    int l;
    cout << "please input l: " << endl;
    cin >> l;

    // 圆面积公式:S = PI * R * R
    double circle = PI * (l / 2.0) * (l / 2.0);     // 通过 '/' 运算将 l 进行类型转换
    double square = l * l;                          // 整数 l 计算的正方形面积仍为 整数
    double diff = square - circle;

    /*
    1.
    cout 格式化输出
        fixed: 设定模式
               保留小数点后位数
               头文件 #include <ios>

        setprecision(2): 指定保留小数点后 2 位数字 
                         如果没有 fixed,则为设定保留 2 位有效数字
                         头文件 #include <iomanip>
    保留两位小数,此处为 四舍五入
    */
    cout << fixed << setprecision(2) << diff << endl;

    /*
    2.
    printf 格式化输出
        %__f:   指定输出变量以 float 精度输出
        .2:     指定保留小数点后 2 位数字
        头文件 #include <stdio>
    */
    // printf("%.2f", diff);
    return 0;
} 

2. 循环

草稿运算可以发现规律为

基数 base(n)
当前项 x(n)
总和 S(n)

base(0) = 1

x(0) = base(0)*a = 2

S(0) = x(0) = 2

base(1) = 10 + base(0) = 11

x(1) = base(1)*a = 22

S(1) = S(0) + x(1) = 2 + 22

base(2) = 100 + base(1) = 111

x(2) = base(2)*a = 222

S(2) = S(1) + x(2) = 2 + 22 + 222

...

...

...

base(n) = pow(10, n) + base(n-1)

x(n) = base(n)*a

S(n) = S(n-1) + x(n)

其中 pow(x, y) 幂函数,表示 x^y

根据题意可以进行编码。

为了避免 pow() 函数在 n 较大时,造成额外的大量内存开销,也可以使用下面的方法来更新基数

3. 判断

Last updated