题解 | #计算糖果#

计算糖果

https://www.nowcoder.com/practice/02d8d42b197646a5bbd0a98785bb3a34

解题思路

这是一道线性方程组求解问题。已知:

  1. 四个值
  2. 需要求解 三个未知数
  3. 所有数字在 之间
  4. 要求解必须是整数

解题步骤:

  1. 设已知的四个值分别为:
  2. 可以得到:
  3. 验证解是否满足条件:
    • 所有值必须是整数
    • 所有值必须在 之间
    • 的两种计算方式必须相等

代码

#include <iostream>
using namespace std;

int main() {
    int x1, x2, x3, x4;
    cin >> x1 >> x2 >> x3 >> x4;
    
    // 计算A、B、C
    int A = (x1 + x3) / 2;
    int B1 = (x3 - x1) / 2;
    int B2 = (x2 + x4) / 2;
    int C = (x4 - x2) / 2;
    
    // 验证条件
    if (B1 == B2 && // B的两种计算方式相等
        (x1 + x3) % 2 == 0 && // 确保A是整数
        (x4 - x2) % 2 == 0 && // 确保C是整数
        A >= -30 && A <= 30 && // 范围检查
        B1 >= -30 && B1 <= 30 &&
        C >= -30 && C <= 30) {
        cout << A << " " << B1 << " " << C << endl;
    } else {
        cout << "No" << endl;
    }
    
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x1 = sc.nextInt();
        int x2 = sc.nextInt();
        int x3 = sc.nextInt();
        int x4 = sc.nextInt();
        
        // 计算A、B、C
        int A = (x1 + x3) / 2;
        int B1 = (x3 - x1) / 2;
        int B2 = (x2 + x4) / 2;
        int C = (x4 - x2) / 2;
        
        // 验证条件
        if (B1 == B2 && // B的两种计算方式相等
            (x1 + x3) % 2 == 0 && // 确保A是整数
            (x4 - x2) % 2 == 0 && // 确保C是整数
            A >= -30 && A <= 30 && // 范围检查
            B1 >= -30 && B1 <= 30 &&
            C >= -30 && C <= 30) {
            System.out.println(A + " " + B1 + " " + C);
        } else {
            System.out.println("No");
        }
    }
}
x1, x2, x3, x4 = map(int, input().split())

# 计算A、B、C
A = (x1 + x3) // 2
B1 = (x3 - x1) // 2
B2 = (x2 + x4) // 2
C = (x4 - x2) // 2

# 验证条件
if (B1 == B2 and  # B的两种计算方式相等
    (x1 + x3) % 2 == 0 and  # 确保A是整数
    (x4 - x2) % 2 == 0 and  # 确保C是整数
    -30 <= A <= 30 and  # 范围检查
    -30 <= B1 <= 30 and
    -30 <= C <= 30):
    print(f"{A} {B1} {C}")
else:
    print("No")

算法及复杂度

  • 算法:直接求解线性方程组。
  • 时间复杂度:,只需要固定的计算步骤。
  • 空间复杂度:,只需要常数个变量。
全部评论

相关推荐

07-25 10:17
仰恩大学 营销
bg双非,被挂了
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
06-10 18:55
已编辑
西安电子科技大学 Java
只管努力就好:恭喜恭喜恭喜,我都没有面试机会,上周被压力炸了,今天中午看页面显示被捞进入评估结果下午就没了
京东三面373人在聊
点赞 评论 收藏
分享
07-19 13:28
长沙学院 Java
鸿哥鸿哥:学院(一本),感觉在脱ku子放屁,学院结尾的除了那几家出名的,一律按二本处理
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务