有时候我们会遇到类似于ax+by=c的不定方程,求解这样子的不定方程,我们一般思路是将x,y枚举出来

for(x=0;x<100;x++) for(y=0;y<100;y++){if(a*x+b*y==c){printf("x=%d,y=%d",x,y);}}

但是如果x的规模达到一百万呢,显然用这样子的循环嵌套是非常繁琐的,不利于程序的执行。

这里,我们可以把循环转换为一层循环,具体操作是先求出特解x0,y0,再求出通解。由方程可得x=(c-by)/a,设方程为3x-5y=8,

for(int y=0;y<100;y++) if(8-(-5*y)%3==0){   printf("%d",y0);printf("x0=%d",x0);break;}

我们可以得到特解x0,y0,此时通解方程为x=x0+bt,y=y0-at(t=…-2,-1,0,1,2…),在这里验证一下通解方程是否成立,将通解方程代入ax+by=c,可以发现乘积项abt刚好可以消去,所以通解方程是成立的。
对于规模较大的数值,我们一般用通解方程的解法来求解。

例题

题目描述
给定正整数a,b,c。求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数。
输入
一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开。每个数均不大于1000。
输出
一个整数,即不定方程的非负整数解组数。
输入样例
2 3 18
输出样例
4

#include<stdio.h>
int main()
{int a,b,c;int x,y;int count=0;scanf("%d%d%d",&a,&b,&c);for(x=0;x<=c/a;x++)  //因为x=(c-by)/a,所以x<=c/a{  y=(c-a*x)/b;    //y=(c-ax)/bif(a*x+b*y==c)count++;}printf("%d\n",count);return 0;
}

不定方程求解(C语言)相关推荐

  1. 不定方程求解c语言_事业单位考试备考之数量关系:不定方程的求解

    一.不定方程的定义 含有未知数的等量关系是方程,当未知数个数等于等量关系数的时候,称之为普通方程,如2x+3=8,当未知数个数大于等量关系数时,称之为不定方程,如7x+3y=8. 以x+y=3,这样的 ...

  2. 7650 不定方程求解 python

    http://noi.openjudge.cn/math/7650/ """ 7650 不定方程求解 http://noi.openjudge.cn/math/7650/ ...

  3. 信息学奥赛一本通 1101:不定方程求解 | OpenJudge NOI 2.1 7650 | 小学奥数 7650

    [题目链接] ybt 1101:不定方程求解 OpenJudge NOI 2.1 7650:不定方程求解 OpenJudge NOI 小学奥数 7650:不定方程求解 [题目考点] 1. 枚举 [解题 ...

  4. 信息学奥赛一本通(1101:不定方程求解)

    1101:不定方程求解 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 18175     通过数: 14383 [题目描述] 给定正整数a,b,c.求不定方程 a ...

  5. A - 不定方程求解

    problem: 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. input: 一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开.每个数均不大于10 ...

  6. 1101:不定方程求解(信奥)

    1101:不定方程求解 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 30199     通过数: 23665 [题目描述] 给定正整数a,b,ca,b,c.求不 ...

  7. 1101:不定方程求解

    1101:不定方程求解 时间限制: 1000 ms 内存限制: 65536 KB [题目描述] 给定正整数a,b,ca,b,c.求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负 ...

  8. c++循环嵌套:不定方程求解

    1101:不定方程求解 [题目描述] 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. [输入] 一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开.每 ...

  9. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1101:不定方程求解

    时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4502 通过数: 3672 [题目描述] 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. ...

最新文章

  1. 30~60k | 小鹏汽车3D视觉感知工程师/专家招聘(社招)
  2. 悬浮框_纯HTML实现某宝优惠券、商品列表和活动悬浮等布局(文末有源码)
  3. EtherCAT1.5.2官方文档翻译-第七章
  4. 22.创建DockWidget
  5. 统计输入的字母 c语言,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
  6. Java前后端分离第三方登录_网站前后端分离情况下如何实现QQ微信等第三方登陆-Fun言...
  7. mysql my.cnf中忽略大小写_修改my.cnf ,使mysql 的表面不区分大小写
  8. windows10用户密码获取
  9. (CSS)3.三种基本选择器(标签,类,id)
  10. 【每日新闻】微软日本试行做四天休三天新制度 还发6000元补贴
  11. python tokenize()_tokenize (Language) – Python 中文开发手册 - Break易站
  12. 使用微信开发者平台调样式
  13. 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程【转】...
  14. PO:更改数组与对象的配置
  15. 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
  16. 【持续更新中······】 各种模板+神奇黑科技
  17. 计算机传奇人物之詹姆斯.高斯林
  18. 显卡mx150和230哪个好_MX150和GTX1050哪个好?MX150与GTX1050性能天梯图对比
  19. 患癌女孩冯莹的爱情梦想
  20. 验证哥德巴赫猜想之一—— 2000以内的正偶数(c作业)

热门文章

  1. 【计算机网络】ICMP协议与ping命令
  2. 北斗导航 | GNSS仰角和方位角的计算和XYZ与BLH的坐标转换(附原理matlab源代码)
  3. 【docker基础用法】
  4. CE修改器学习历程之未知值扫描和修改
  5. Lin-CMS(内容管理系统框架)
  6. Linux平台下UNIX SHELL运行任务常用命令
  7. 每日一句: Wow,You're on a winning streak.
  8. 955.WLB 不加班公司名单,2023 年最新版!新增 5 家公司
  9. 抓娃娃机c语言程序设计,vue制作抓娃娃机的示例代码
  10. 翻译包----AMORE