1006-Biorhythms(中國剩餘定理)

來源:互聯網
上載者:User

標籤:

一,題意:右上方中文。
二,思路:
  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.\n",l++,n);13     }14     return 0;15 }
View Code

 

1006-Biorhythms(中國剩餘定理)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.