zoukankan      html  css  js  c++  java
  • poj1006-Biorhythms(中国剩余定理)

    一,题意:右上角中文。
    二,思路:
      1,由题意得出方程组
      2,利用中国剩余定理求解
      3,求出最小正整数
    三,步骤:
      1,由题意得出方程组

          (n+d) % 23 = p ;
          (n+d) % 28 = e ;
          (n+d) % 33 = i ;
    2,中国剩余定理求解
      i,从23和28的公倍数中找出x,且满足x%33 = 1 ,x=1288
      ii,从23和33的公倍数中找出y,且满足y%28 = 1 ,y=14421
      iii,从28和33的公倍数中找出z,且满足z%23 = 1 ,z=5544
      iiii,s = (n+d) = (5544*p+14421*e+1288*i) % lcm(23,28,33); lcm为最小公倍数 =21252;
    3, 求最小正整数解
      i,防止n为负数:n=(n+21252)%21252
      注意当n=0时,结果输出21252。

     1 #include<iostream>
     2 using namespace std;
     3 
     4 int main(){
     5     int p,e,i,d,n,s,l=1;
     6     while(cin>>p>>e>>i>>d){
     7         if(p==-1&&e==-1&&i==-1&&d==-1)break;
     8         int n=(5544*p+14421*e+1288*i)%21252-d;
     9             n= (n+21252)%21252;    //防止 s 是负数 
    10         if(n==0)
    11             n=21252;
    12         printf("Case %d: the next triple peak occurs in %d days.
    ",l++,n);
    13     }
    14     return 0;
    15 }
    View Code

     版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    mysql root密码重置
    fetch跨域问题
    HTML5触摸事件(touchstart、touchmove和touchend)
    react-router-dom
    清理网站缓存
    从零开始学java (标识符,关键字,基本数据类型)
    从零开始学java ( 初始java)
    入职一年心得
    guava 函数式编程三兄弟
    java读取各种类型文件
  • 原文地址:https://www.cnblogs.com/My-Sunshine/p/4843198.html
Copyright © 2011-2022 走看看