窮舉迴圈:對於不定方程,可以利用窮舉迴圈的方法來解決,就是通過對未知數可變範圍的窮舉,驗證方程在什麼情況下成立,從而得到相應的解。
1. 百雞百錢問題:不定方程:cock+hen+chicken=100
5xcock+3xhen+chicken/3.0=100
示例:intcock,hen,chicken;
for(cock=0;cock<=20;cock++)
for(hen=0;hen<=33;hen++)
for(chicken=0;chicken<=100;chicken++)
if((cock+hen+chicken==100)&&(5*cock+3*hen+chicken/3.0==100))
printf("cock:%d,hen:%d,chicken:%d\n",cock,hen,chicken);
2. 借書方案:示例:for(a=1;a<=5;a++)
for(b=1;b<=5;b++)
for(c=1;c<=5&&a!=b;c++)
if(a!=c&&b!=c)
printf("a:%db:%d c:%d",a,b,c);
3. 車牌號碼:示例:for(i=0;i<10;i++)
for(j=0;j<=10;j++)
if(i!=j)
k=1000*i+100*i+10*j+j;
for(temp=31;temp<=99;temp++)
if(temp*temp==k)
printf("%d\n",k);
注意:優化演算法,減少迴圈次數:
1. 確定迴圈變數:chicken=100-cock-hen;
2. 在迴圈條件中加入判斷:for(c=1;c<=5&&a!=b;c++)
3. 盡早退出迴圈:if(flag)break;
c語言趣味程式設計100例 迭代迴圈
迭代迴圈 即是乙個不斷用新值取代變數的舊值,然後由變數舊值遞推出變數新值的過程,這種迭代與如下因素有關 初值,迭代公式,迭代次數。1.兔子產子問題 演算法可以描述為 fib fib2 1 n 1,2 初值 fibn fib n 1 fib n 2 n 3 迭代公式 程式如下 long fib1 1,...
c語言趣味程式設計100例 求車速
問題 求車速 一輛以固定行駛的汽車 司機在上午10點看歷程表上的讀數是乙個對稱數 既這個數從左往右和從右往左 完全是一樣的 為95859 兩個小時候歷程表上出現了乙個新的對稱數 該數稱為五位數 問該車的速度是多少 新的對稱數是多少 思路 我們可以從條件中獲取到對稱數是第一位與第五位一致 第二位和第四...
趣味100道C語言程式num four
求階乘位數0的個數 例如 求 100!的末尾有多少個0 分析 顯然100!的位數超出已知基本資料型別的範圍,所以不能單純的先求取出100!的數值,再判斷末尾有多少個0.尋找規律可以發現,該問題可以轉換成1 100的100個整數一共有多少個因數5,的問題。程式如下 include int main p...