POJ 1006 Biorhythms 中国的法律来解决剩余的正式
这个问题以前用模拟的方法来解决亚军,正如溶液是一个通用的解决方案。
这里使用数学方法:剩下的孙子法(当然,被称为中国剩余法)。由于建议的孙子。所以也承认外国的孙子是数学家。
参考数论建议大家学习的专业书籍法律;
在这里,颜格依照数论的方法写出全过程的程序,不像某些博客仅仅给出终于步骤。方便大家结合程序和专业书本学习这个定律。
int g, s, t;
const int m1 = 23;
const int m2 = 28;
const int m3 = 33; void extGCD(int a, int b)
{
if (b == 0)
{
s = 1, t = 0, g = a;
}
else
{
extGCD(b, a % b);
int tmp = s;
s = t;
t = tmp - a / b * t;
}
} int a, b, c, m;
void preCalculateABCM()
{
m = m1 * m2 * m3; //本题==21252 int M1 = m / m1;
int M2 = m / m2;//=759
int M3 = m / m3; extGCD(M1, m1);
int y1 = s;
if (y1 < 0)
{
int y = -y1;
y %= m1;
y1 = m1 - y;
} extGCD(M2, m2);
int y2 = s;
if (y2 < 0)
{
int y = -y2;
y %= m2;
y2 = m2 - y;
} extGCD(M3, m3);
int y3 = s;
if (y3 < 0)
{
int y = -y3;
y %= m3;
y3 = m3 - y;
} a = M1 * y1;
b = M2 * y2;
c = M3 * y3;
} int meetDates(int p, int e, int i, int d)
{
//p %= m1, e %= m2, i %= m3;
int x = p * a + e * b + i * c;
x %= m; if(x <= d) x = m - (d - x);
else x = x - d;
return x;
} int main()
{
preCalculateABCM();
int p,e,i,d, n = 0;
while (cin>>p>>e>>i>>d && -1 != d)
{
n++;
printf("Case %d: the next triple peak occurs in %d days.\n",
n, meetDates(p, e, i, d));
}
return 0;
}
版权声明:笔者靖心脏,景空间地址:http://blog.csdn.net/kenden23/,只有经过作者同意转载。
POJ 1006 Biorhythms 中国的法律来解决剩余的正式的更多相关文章
- POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理)
POJ.1006 Biorhythms (拓展欧几里得+中国剩余定理) 题意分析 不妨设日期为x,根据题意可以列出日期上的方程: 化简可得: 根据中国剩余定理求解即可. 代码总览 #include & ...
- POJ 1006 - Biorhythms (中国剩余定理)
B - Biorhythms Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Subm ...
- POJ 1006 Biorhythms(中国剩余定理)
题目地址:POJ 1006 学习了下中国剩余定理.參考的该博客.博客戳这里. 中国剩余定理的求解方法: 假如说x%c1=m1,x%c2=m2,x%c3=m3.那么能够设三个数R1,R2,R3.R1为c ...
- [POJ 1006] Biorhythms C++解题
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 107569 Accepted: 33365 ...
- poj 1006:Biorhythms(水题,经典题,中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 110991 Accepted: 34541 Des ...
- poj 1006 Biorhythms (中国剩余定理模板)
http://poj.org/problem?id=1006 题目大意: 人生来就有三个生理周期,分别为体力.感情和智力周期,它们的周期长度为23天.28天和33天.每一个周期中有一天是高峰.在高峰这 ...
- POJ 1006 Biorhythms --中国剩余定理(互质的)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 103539 Accepted: 32012 Des ...
- POJ 1006 Biorhythms (数论-中国剩余定理)
Biorhythms Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 111285 Accepted: 34638 Des ...
- POJ 1006 Biorhythms (中国剩余定理)
在POJ上有译文(原文右上角),选择语言:简体中文 求解同余方程组:x=ai(mod mi) i=1~r, m1,m2,...,mr互质利用中国剩余定理令M=m1*m2*...*mr,Mi=M/mi因 ...
随机推荐
- CF 148D. Bag of mice (可能性DP)
D. Bag of mice time limit per test 2 seconds memory limit per test 256 megabytes input standard inpu ...
- 左右presentViewController经background黑问题
看效果图: 用例如以下代码,想弹出一个模态窗体,设置它的背景透明度为0.5,却发觉prsent后的背景色变为黑色的. ShareVC *share = [[ShareVC alloc] init]; ...
- JS于string 和 json互转对象
一.json开启string JSON.stringify(jsonObj) 两.string开启json eval(string) 版权声明:本文博主原创文章.博客,未经同意不得转载.
- jQuery -> bind / live / delegate 终结者 - on
最近的一项研究jQuery.利用获得的最新版本1.11.1. 据该书打下面的代码示例,,反正也发现跑不起来. html <div class="container"> ...
- Android学习路径(十)怎么会Action Bar堆放在布局
默认情况下.action bar出如今activity窗体的顶部.稍微降低了activity布局的总空间. 假设你想隐藏或者显示action bar.在这堂用户体验的课程中,你能够通过调用hide() ...
- EasyUI禁用控制方法常采用
EasyUI禁用控制方法常采用: 1.validatebox使用可以使用:前两个适用于个人validatebox; 第三适用于整个form内箱; <1>.$("#id& ...
- mbed列--基于飞思卡尔FRDM KL25Z鼠标设计的高速实现
========================================================== 原创文章转载请注明:blog.csdn.net/guo8113 ========= ...
- JDBC在getConnection之前为什么要调用Class.forName(转)
获取一个数据库连接的通用模板如下: String driver = "oracle.jdbc.OracleDriver"; String url = "jdbc:orac ...
- java major version(转)
在jar包中,用winrar解压一个类文件,然后在命令行下面输入 javap -verbose classname 会输出一些信息,大致如下: Compiled from "HtmlCraw ...
- angularJS socket
工程Controller加载文件Service层socket.js.controller所在页面时连接socket(也可一进入项目就连接,看需求).细节还需继续优化,写下来以防忘了~ Service层 ...