韓信點兵
題目描述:
在中國數學史上,廣泛流傳着一個“韓信點兵”的故事:韓信是漢高祖劉邦手下的大將,他英勇善戰,智謀超群,為漢朝建立了卓越的功勞。據說韓信的數學水平也非常高超,他在點兵的時候,為了知道有多少兵,同時又能保住軍事機密,便讓士兵排隊報數:按從1至5報數,記下最末一個士兵報的數為1; 再按從1至6報數,記下最末一個士兵報的數為5; 再按從1至7報數,記下最末一個士兵報的數為4; 最后按從1至11報數,最末一個士兵報的數為10; 請編寫程序計算韓信至少有多少兵。
輸入格式:
本題無輸入
輸出格式:
輸出韓信至少擁有的士兵人數。
分析:
至少擁有的士兵人數應該要順序滿足(1至5 1至6、1至7、1至11) 4種點名方式,則可以構建for循環依次增加士兵人數,直至滿足條件。
代碼如下
#include<stdio.h>
int main()
{
int i;
for (i = 0;; i++)
{
if (i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10)
{
printf("%d", i); break;
}
}
return 0;
}
總結:本題的代碼十分簡單。但可以從本題中學到的是無論是什么題目都需要先理清邏輯,才能正確運用電腦來幫助我們解決問題。