1 条题解

  • 0
    @ 2025-9-15 22:53:18

    C

    说明

    本题要求计算第四块石头的重量,核心思路基于“总重量固定”的逻辑:已知4块石头总重需为20斤,因此第四块石头的重量 = 20斤 - 前3块石头的重量之和。整个过程仅涉及一次加法(计算前3块总和)和一次减法(求差值),无循环或复杂逻辑,时间复杂度为O(1)(常数级),适合入门练习基本算术运算和输入输出。

    代码

    #include <stdio.h>
    
    int main() {
        int a, b, c;
        // 读取前3块石头的重量(用空格分隔)
        scanf("%d %d %d", &a, &b, &c);
        
        // 计算第四块重量:总重20减去前3块总和
        int fourth = 20 - (a + b + c);
        
        // 输出第四块重量
        printf("%d\n", fourth);
        return 0;
    }
    

    C语言拓展知识

    推荐搜索:C语言整数算术运算规则(加法/减法的溢出判断)、scanf多变量输入时的格式匹配(如输入多空格/回车是否影响读取)、表达式括号的作用(为何20 - (a + b + c)无需括号也可,但括号能提升可读性)。

    C++

    说明

    本题逻辑与C语言完全一致(通过“总重-前3块和”求第四块重量),但C++可通过输入输出流直接简化代码:无需定义中间变量存储“前3块总和”,可直接在输出时计算表达式结果,同时避免C语言scanf的格式控制符,代码更直观。

    万能头文件

    #include<bits/stdc++.h> 是C++非标准头文件(竞赛常用),包含所有标准库,无需手动逐个包含,适合快速编码。

    新知识

    1. 表达式直接输出:

      • 术语:cout << 20 - a - b - c
      • 解释:C++的cout支持直接输出算术表达式的计算结果,无需像C语言那样先定义变量存储结果(如int fourth = 20 - (a+b+c)),可直接在输出语句中写表达式,减少代码行数。
      • 对比:C语言需先计算并存储结果,再用printf输出;C++可“计算+输出”一步完成,更简洁。
    2. 链式输入:

      • 术语:cin >> a >> b >> c
      • 解释:cin通过>>运算符可连续读取多个变量,自动忽略输入中的空格、回车等分隔符,无需像C语言scanf那样显式写格式控制符(如%d),降低输入格式错误的概率。

    AC

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        int a, b, c;
        // 链式读取前3块石头的重量,自动处理分隔符
        cin >> a >> b >> c;
        
        // 直接输出表达式结果:20减去前3块重量之和
        cout << 20 - a - b - c << endl;
        return 0;
    }
    

    C++拓展知识

    推荐搜索:C++算术表达式的运算优先级(为何20 - a - b - c无需括号,与20 - (a + b + c)结果一致)、cin读取数据时的错误处理(如输入非整数会怎样)、cout输出表达式时的类型自动转换(如整数结果是否会被误判为其他类型)。

    • 1

    信息

    ID
    136
    时间
    1000ms
    内存
    64MiB
    难度
    3
    标签
    递交数
    43
    已通过
    23
    上传者