中国剩余定理即解一组带余除法的不定方程组(同余式组解法)。

例如:求一个最小数x,已知x%3=2且x%5=3且x%7=2。

思路就是:

1、先从(3,5)的公倍数中找一个%7=1的最小公倍数,这里是15;再从(3,7)的公倍数中找一个%5=1的最小公倍数,这里是21;再从(5,7)的倍数中找一个%3=1,这里是70。

2、用A=15*2=30,并且30%7=2;用B=21*3=63,并且63%5=3;用C=70*2=140,并且140%3=2;

3、然后把这三个数相加:30+63+140=233;

4、用233 去除以(3,5,7)的最小公倍数105,得到余数23,即233%105=23, 23就是符合条件的最小X。

思路分析:

1、首先提及一个数学公式 a%b=c则 (a+K*b)%b=c;

2、上述的A是(3,5)的公倍数,B是(3,7)的公倍数,C是(5,7)的公倍数。A满足A%7=2,通过上面的公式可得(A+B+C)%7=2,因为B,C都是7的倍数;同理(A+B+C)%5=3,(A+B+C)%3=2。

3、A+B+C一定满足题目的要求,但不是最小的,所以最后结果我们只需要从A+B+C 中最大限度的减掉(3,5,7)的最小公倍数,即(A+B+C)%105=23;

对于poj1006这个题。

题意:

告诉你有三个值, physical, emotional, 和 intellectual ,它们周期分别为23,28,33。

题目给你这个三个值到达峰值的天数分别为p,e,i,也告诉的时间已经去过d天,问这个三个值同时到达峰值至少还需要多少天?

设还需要X天:

则X%23=p;X%28=e;X%33=i;同上解析

A=28*33*K*p (28*33*K%23==1)=5544*p;

B=23*33*K*e (23*33*K%28==1 )  =14421*e;

C=28*23*K*i  (28*23*K%33==1)=1288*i;

代码如下:

#include<stdio.h>
#include<algorithm>
#include<iostream>
#define N 21252
using namespace std;
int p,e,i,d;
int main()
{
int t=0;
while(~scanf("%d%d%d%d",&p,&e,&i,&d))
{
if(p==-1&&e==-1&&i==-1&&d==-1)
break;
t++;
int num=0;
num=5544*p+14421*e+1288*i;
num=(num-d+N)%N;
if(num==0)
num=N;
printf("Case %d: the next triple peak occurs in %d days.\n",t,num);
}
return 0;
}

最新文章

  1. 前端开发神器sublime Text
  2. Kanzi Q&amp;A
  3. 《Learninghard C#学习笔记》回馈网友,免费送书5本
  4. sql server 数据误删找回
  5. js之oop &lt;一&gt; 创建对象,构造器(class)
  6. c# 读取远程主机性能计数器
  7. 最浅显、易懂的Linux 硬链接与软链接的理解
  8. Intra Luma Prediction
  9. 【BZOJ1901】Dynamic Rankings
  10. SpringMVC基础-@RequestMapping
  11. centos 6.5静态网址简单配置
  12. 笔记:Spring Cloud Ribbon 客户端配置详解
  13. Shell自学二(参数传递和数组)
  14. CSS :focus 选择器
  15. CF618G(利用浮点数精度+矩乘优化DP)
  16. 【Python3练习题 015】 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?
  17. odoo 11 实现多个字段对应一个查询参数的查询
  18. Ajax cross domain
  19. Word打开默认显示缩略图,而不是文档结构图
  20. IOS 数据存储之 SQLite详解

热门文章

  1. boost安装缺少libboost_iostreams.so
  2. python——数字问题之_ 变量
  3. leetcode208
  4. 在cxGrid表格中如何获得当前列的字段名
  5. Nmap扫描命令使用详解
  6. faster rcnn源码阅读笔记1
  7. Nginx搭建
  8. Pandas数据的去重,替换和离散化,异常值的检测
  9. 二维树状数组poj1195
  10. 【python深入】装饰器理解及使用