愛因斯坦台階問題演算法C 實現

2021-09-02 17:17:13 字數 747 閱讀 8191

/*	愛因斯坦台階問題:

有人走一台階,若以每步走2級則最後剩1級; x % 2 = 1;

若每步走3級則最後剩2級; x % 3 = 2;

若以每步走4級則最後剩3級; x % 4 = 3;

若以每步走5級則最後剩4級; x % 5 = 4; -> x % 119 = 0(解同餘方程組)

若以每步走6級則最後剩5級; x % 6 = 5;

若以每步走7級則最後剛好不剩。問台階共有幾級? x % 7 = 0;

*/#include #include void improvedexhaustivemethod();

int main()

void improvedexhaustivemethod()

} //可以根據中國剩餘定理(chinese remainder theorem)對該同余式組進行化簡得到下列同余式組

// x % 2 = 1;

// x % 3 = 2;

// x % 5 = 4;

/* for (int i = 7; ; i += 14)

} */

//endtime = clock();

//duration = ((double)(starttime - endtime)) / clk_tck;

//std::cout << duration << std::endl;

}

愛因斯坦階梯問題

愛因斯坦曾經提出過這樣一道有趣的數學題 有乙個長階梯,若每步上2階,最後剩下1階 若每步上3階,最後剩2階 若每步上5階,最後剩下4階 若每步上6階,最後剩5階 只有每步上7階,最後剛好一階也不剩。請問該階梯至少有多少階。我們假設階梯共有n階,我們可以很快的列出下面的式子 n mod 2 1 n m...

愛因斯坦階梯問題

include include intmain return0 還有一種思路,複習做題時遇到的tat int ladders 7 while ladders 3 2 ladders 5 4 ladders 6 5 ladders 14 printf d n ladders 窮舉遍曆法,效率太低,改進...

python 愛因斯坦階梯問題

解釋 設有台階若干,每跨2階,最後餘1階,跨3階餘2階,跨5階餘4階,跨6階餘5階,跨7階正好到達階梯頂部。分析 先假設有i,餘2等於1,餘3等於2,以此類推。1 i 2 1and i 3 2and i 5 4and i 6 5and i 7 0符合以上 即可。可以使用while和for語句進行書寫...