質問の意味
:
誕生から誰が、身体的、感情的、知的3つの月経周期、それぞれ23、28および33日を持っています。この日のピーク期間中毎日、、(、身体的、感情的または精神的な)対応する側面のパフォーマンスで最高の男。これは通常、3のピーク期間が同じ日ではありませんです。今物理的、感情的、知的ピーク出現の日付に対応する、3日を与えられました。続いて、この日から、必要な開始日を与える他の三つのピークが同時に発生した以上の日数を計算します。
この問題は、中国の剰余定理究極の水の問題です(でも、テンプレートは実際にはありません)が、中国の剰余定理は、私の心の痛みとなっています。。
中国の剰余定理
「孫子スアンジン」のような問題があると言った:「今日は未知数残りの2つ(32で割った余り)の3数3、数週間(5以上で割っ3)は、3つの残りの五〇から五数でした(以上72で割った)残りの二つの数は、幾何学的なオブジェクトを尋ねた?「問題への国際的な一般的な解決策に呼びかけ、」孫の問題中国の剰余定理「は、この問題が呼ばれます」。 " 3つの段階で具体的な解決策:
- 3つの数字を見つける:7を最終から3,7、5,7の公倍数からI 21の最小数を見つけるために、5に加えて、15 3及び5の公倍数から分割余りの最小数を見つけるために加えて、70 I 31の数の最小公倍数を見つけることができます。
- 15(最終結果は数5で除算されている3)21 3を乗じ、(7によって分割される最終結果のための2つ)2が乗算される。同様に、70を乗じ2(最終結果は2〜3で除算され残り)、および3つの製品が追加される15 * 2 + 21 * 3 + 70 * 2 15 * 2 + 21 * 3 70 * 2 + 233を得られました。
- すなわち、105 3,5,7 3の最小公倍数で割った数233、分割23の残りの部分と233 %105 = 23 233 105%= 23。残り23は、条件の最小数と一致しています。
%23 = 1 33 * 28 *ように、= 6を得る; * 28 * 6 = 5544 33。
だから、23 * 33 * Bが%28 =ことを 1が、 = 19bとしている、23 * 33 * 19 = 14421;
33 = 23 * 28 *のC%とする 1は、 与えるために、C = 2; 23 * 28 * 2 = 1288。
そして、X = 5544 * P + 14421 * E + 1288 * I
する#include <stdio.hの> に#define MAX 21252 INT のmain() { int型の P、E、I、D、N、=カウント0 。一方、(scanf関数(" %D%D%D%D "!、&P、&E&I&D)= EOF)が { カウント ++ ; もし( - P == 1 && E == - 1 && I == - 1 && D == - 1 ) { 破ります。 } N =(5544 * P + 14421 * E + 1288 * I - D)%MAX。 もし(N <= 0) // 范围限制 { N + = 21252 。 } のprintf(" ケース%D:次のトリプルピークは%d日に発生した\ N " 、カウント、n)は、 } 戻り 0 。 }