程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C語言實例之愛因斯坦的數學題

C語言實例之愛因斯坦的數學題

編輯:關於C

愛因斯坦出了一道這樣的數學題:有一條長階梯,若每步跨2階,則最最後剩一階,若每步跨3 階,則最後剩2階,若每步跨5階,則最後剩4階,若每步跨6階則最後剩5階。只有每次跨7階,最後才正好一階不剩。請問這條階梯共有多少階?

  *問題分析與算法設計

  根據題意,階梯數滿足下面一組同余式:

  x≡1 (mod2)

  x≡2 (mod3)

  x≡4 (mod5)

  x≡5 (mod6)

  x≡0 (mod7)

  *程序說明與注釋

  #include<stdio.h>

  int main()

  {

  int i=1; /*i為所設的階梯數*/

  while(!((i%2==1)&&(i%3==2)&&(i%5==4)&&(i%6==5)&&(i%7==0)))

  ++i; /*滿足一組同余式的判別*/

  printf("Staris_number=%d\n",i);

  }

  *運行結果

  Staris_number=119

  *問題的進一步討論

  此題算法還可考慮求1、2、4、5的最小公倍數n,然後判t(t為n-1)≡0(mod7)是否成立,若不成立則t=t+n,再進行判別,直至選出滿足條件的t值。請自行編寫程序實現

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved