不定方程求解(C语言)
有时候我们会遇到类似于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语言)相关推荐
- 不定方程求解c语言_事业单位考试备考之数量关系:不定方程的求解
一.不定方程的定义 含有未知数的等量关系是方程,当未知数个数等于等量关系数的时候,称之为普通方程,如2x+3=8,当未知数个数大于等量关系数时,称之为不定方程,如7x+3y=8. 以x+y=3,这样的 ...
- 7650 不定方程求解 python
http://noi.openjudge.cn/math/7650/ """ 7650 不定方程求解 http://noi.openjudge.cn/math/7650/ ...
- 信息学奥赛一本通 1101:不定方程求解 | OpenJudge NOI 2.1 7650 | 小学奥数 7650
[题目链接] ybt 1101:不定方程求解 OpenJudge NOI 2.1 7650:不定方程求解 OpenJudge NOI 小学奥数 7650:不定方程求解 [题目考点] 1. 枚举 [解题 ...
- 信息学奥赛一本通(1101:不定方程求解)
1101:不定方程求解 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 18175 通过数: 14383 [题目描述] 给定正整数a,b,c.求不定方程 a ...
- A - 不定方程求解
problem: 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. input: 一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开.每个数均不大于10 ...
- 1101:不定方程求解(信奥)
1101:不定方程求解 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 30199 通过数: 23665 [题目描述] 给定正整数a,b,ca,b,c.求不 ...
- 1101:不定方程求解
1101:不定方程求解 时间限制: 1000 ms 内存限制: 65536 KB [题目描述] 给定正整数a,b,ca,b,c.求不定方程 ax+by=cax+by=c 关于未知数xx和yy的所有非负 ...
- c++循环嵌套:不定方程求解
1101:不定方程求解 [题目描述] 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. [输入] 一行,包含三个正整数a,b,c,两个整数之间用单个空格隔开.每 ...
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1101:不定方程求解
时间限制: 1000 ms 内存限制: 65536 KB 提交数: 4502 通过数: 3672 [题目描述] 给定正整数a,b,c.求不定方程 ax+by=c 关于未知数x和y的所有非负整数解组数. ...
最新文章
- 30~60k | 小鹏汽车3D视觉感知工程师/专家招聘(社招)
- 悬浮框_纯HTML实现某宝优惠券、商品列表和活动悬浮等布局(文末有源码)
- EtherCAT1.5.2官方文档翻译-第七章
- 22.创建DockWidget
- 统计输入的字母 c语言,请问这个用c怎么做:输入一串字符,分别统计其中数字和字母的个数...
- Java前后端分离第三方登录_网站前后端分离情况下如何实现QQ微信等第三方登陆-Fun言...
- mysql my.cnf中忽略大小写_修改my.cnf ,使mysql 的表面不区分大小写
- windows10用户密码获取
- (CSS)3.三种基本选择器(标签,类,id)
- 【每日新闻】微软日本试行做四天休三天新制度 还发6000元补贴
- python tokenize()_tokenize (Language) – Python 中文开发手册 - Break易站
- 使用微信开发者平台调样式
- 那些年搞不懂的高深术语——依赖倒置•控制反转•依赖注入•面向接口编程【转】...
- PO:更改数组与对象的配置
- 两个瓶子水怎样一样多_大班科学领域数学活动 | 一样多的水(容积守恒)
- 【持续更新中······】 各种模板+神奇黑科技
- 计算机传奇人物之詹姆斯.高斯林
- 显卡mx150和230哪个好_MX150和GTX1050哪个好?MX150与GTX1050性能天梯图对比
- 患癌女孩冯莹的爱情梦想
- 验证哥德巴赫猜想之一—— 2000以内的正偶数(c作业)
热门文章
- 【计算机网络】ICMP协议与ping命令
- 北斗导航 | GNSS仰角和方位角的计算和XYZ与BLH的坐标转换(附原理matlab源代码)
- 【docker基础用法】
- CE修改器学习历程之未知值扫描和修改
- Lin-CMS(内容管理系统框架)
- Linux平台下UNIX SHELL运行任务常用命令
- 每日一句: Wow,You're on a winning streak.
- 955.WLB 不加班公司名单,2023 年最新版!新增 5 家公司
- 抓娃娃机c语言程序设计,vue制作抓娃娃机的示例代码
- 翻译包----AMORE