首页 > 其他分享 >判断方程是否有整数解

判断方程是否有整数解

时间:2024-06-24 12:29:37浏览次数:3  
标签:输出 方程 判断 gcd int 整数 用例 ax

描述

判断ax + by = c方程是否有解

输入描述

一行三个数a,b,c

输出描述

有解则输出YES 否则输出NO

用例输入 1 
4 8 3
用例输出 1 
NO
用例输入 2 
4 8 12
用例输出 2 
YES

提示

a,b,c都在int范围内

分析一下吧:

要判断线性方程 ( ax + by = c ) 是否有整数解,可以利用以下的性质:

根据贝祖定理(Bézout’s identity),线性方程 ( ax + by = c ) 有整数解当且仅当 ( \gcd(a, b) ) 能整除 ( c )。这是因为 ( \gcd(a, b) ) 是 ( a ) 和 ( b ) 的最大公约数,它可以表示为 ( ax + by ) 的形式,其中 ( x ) 和 ( y ) 是整数。

因此,我们的解决方法如下:

  1. 计算 ( \gcd(a, b) )。
  2. 检查 ( \gcd(a, b) ) 是否能整除 ( c )。

如果 ( \gcd(a, b) ) 能整除 ( c ),则输出 “YES”,表示有整数解;否则输出 “NO”,表示无整数解。

下面是相应的 C++ 代码实现:

#include <iostream>
#include <cmath>
using namespace std;
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return abs(a);
}

int main() {
    int a, b, c;
    cin >> a >> b >> c;

    int gcd_ab = gcd(a, b);

    if (c % gcd_ab == 0)
        cout << "YES" << endl;
    else
        cout << "NO" << endl;
    return 0;
}

标签:输出,方程,判断,gcd,int,整数,用例,ax
From: https://blog.csdn.net/hu222333hg/article/details/139922132

相关文章

  • 算法题-JS实现整数反转
    学习目标:整数反转leetcode原题链接学习内容:给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−231,231−1],就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出......
  • 有限元求解Cahn Hilliard 相场方程
    CahnHilliard方程,相场因为最近在学习用有限元求解CahnHilliard方程内容,所以我把我的汇报内容放在这里,希望可以和大家一起学习,交流。因为我实在是懒得翻译,就放的英文版,但是英语都不多,我的英语水平也有限。如果有什么问题的话,也希望大家可以提供给我建议。目标方程......
  • 2024-06-22:用go语言,给定一个起始下标为 0 的长度为3的整数数组 nums,根据这些数字构建
    2024-06-22:用go语言,给定一个起始下标为0的长度为3的整数数组nums,根据这些数字构建三角形。如果无法构成三角形,则返回"none";否则根据三角形的边长关系返回对应类型的字符串:equilateral(等边三角形)、isosceles(等腰三角形)或scalene(不等边三角形)。输入:nums=[3,3,3]。输出:"e......
  • 常微分方程算法之编程示例一(欧拉法)
    目录一、研究问题二、C++代码三、计算结果一、研究问题    前面几节内容介绍了常微分方程有限差分格式的推导。为加强对本专栏知识的理解,从本节开始,我们补充一些具体算例及相应的编程。    欧拉法的原理及推导请参考:常微分方程算法之欧拉法(Euler)_欧拉......
  • 强化学习(Reinforcement Lrarning,RL)03:贝尔曼方程
    强化学习(ReinforcementLrarning,RL)03:贝尔曼方程强化学习(ReinforcementLrarning,RL)03:贝尔曼方程1.状态价值1.1状态价值函数(StateValueFunction)1.2最优策略(OptimalPolicy)2.贝尔曼方程2.1贝尔曼方程(BellmanEquation)2.2贝尔曼方程的推导2.3贝尔曼方程矩阵形式(Matr......
  • java_if判断语句
    顺序结构JAVA的基本结构就是顺序结构,除非特别指明,否者就按照顺序一句一句执行。顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,他是任意一个算法都离不开的一种基本算法结构。packagecom.wen.s......
  • 运筹学练习Python精解——整数规划
    练习1一汽车厂生产小、中、大三种类型的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间的现有量如下表所示,试制定月生产计划,使工厂的利润最大。进一步讨论:由于各种条件限制,如果生产某一类型汽车,则至少要生产80辆,那么最优的生产计划应作何改变。......
  • 【数据结构与算法 刷题系列】判断链表是否有环(图文详解)
                   ......
  • pytorch实现:PINN 寻求一维非线性薛定谔方程数值解
    pytorch实现:PINN寻求一维非线性薛定谔方程数值解pytorch实现:PINN寻求一维非线性薛定谔方程数值解1.非线性薛定谔方程2.PINN实例2.1偏微分方程条件2.2损失函数推导2.3损失函数定义3.代码实现4.训练结果5.源代码pytorch实现:PINN寻求一维非线性薛定谔方程数值......
  • Blazor 判断一个内部url是否符合路由
    Blazor内部的方法不对外公开,要么反射,要么自己写写的不好,参考自https://q.cnblogs.com/q/146281,有一点改动。这个其实是适合后端的,比Blazor的路由约束支持要多,判定上可能会出现失误。而且"Microsoft.AspNetCore.Routing"Version="2.2.2"包已过时了publicclassRouteHelper{......