/*
題目:三色球問題
內容:乙個口袋裡放有12個球,已知其中3個是紅的,3個是白的,6個是黑的,現在從中任取8個,問共有
多少種可能的顏色搭配?
作答者:小白楊
收穫: 設8個球中紅球為x1個,白球為x2個,則黑球為8-x1-x2。又已知12個球中有3個紅球,3個白球,6
個黑球,因此x1的取值範圍[0,3],x2的取值範圍為[0,3],黑球的個數小於等於6,即8-x1-x2<=6.
*/#include int main()
} printf("%d\n",flag);
return 0;}/*
題目:**金魚(列舉法)
內容: 小明將養的一缸金魚分5次**:第一次賣出全部的一半加1/2條;第二次賣出餘下的三分之一加
1/3條;第3次賣出餘下的四分之一加1/4條;第4次賣出餘下的五分之一加1/5條;最後賣出餘下的11條。
試程式設計求出原來魚缸中共有多少條魚。
作答者:小白楊
收穫:依題意可知,金魚是分5次**的,每次賣出的方式都相同,因此可以用表示式將每次賣魚後剩下的
條數計算出來。
由:第1次賣出全部的一半加1/2條;
第2次賣出餘下的三分之一加1/3條;
第3次賣出餘下的四分之一加1/4條;
第4次賣出餘下的五分之一加1/5條;
可推出:第j次賣出餘下的(j+1)分之一加1/(j+1)條。
假設第j次賣魚前金魚總數為x,則第j次賣魚後魚缸中還剩下金魚的條數為:x-(x+1)/(j+1).
又由於「最後賣出餘下的11條」,因此第4次賣魚後魚缸中剩下的金魚條數為11條。因為金魚只能整條進行
**,因此x+1必然能夠整除j+1.可以從23開始試探x的取值,由於x值必為奇數,因此步長取2.
*/#include int main()
if(j==5&&x==11)
} return 0;
} /*題目:求車速
內容:作答者:
收穫: 優化:將一位5位數存入乙個陣列
*/#include int main();
while(x<100000)
if(a[0]==a[4]&&a[1]==a[3])
break;
x++;
} v = (double)(x-95859)/2;
printf("車速:%f\t,新的對稱數:%d\n",v,x);
return 0; }/*
題目:愛因斯坦的數學問題
內容:作答者:小白楊
內容:
*/#include int main()
}printf("\n在1~%d中有%d個數滿足條件\n",n,flag);
} return 0;
}
列舉法的簡單應用
箱子裡有紅,黃,藍,白,黑五種顏色玻璃球若干,每次任意拿出三個球,問拿出三種不同顏色玻璃球的可能取法,請輸出每種排列的情況。註解 利用列舉法定義五種情況,enum color 定義四個整形變數 int i,j,k,m 0 依次從i到k分別進行從紅到黑的情況迴圈,利用if來決斷i,j,k互不相等的情況...
演算法 列舉法
列舉 enumuerate 是蠻力策略的一種表現,最普遍的思維方式。它根據問題中的條件將可能的情況一一枚舉出來,逐一嘗試從中找到滿足問題條件的解。優點 演算法簡單,在區域性地方使用列舉法,效果十分的好 缺點 運算量過大,當問題的規模變大的時候,迴圈的階數越大,執行速度越慢 示例 百錢百雞問題 我國古...
暴力列舉法
思路及演算法 最容易想到的方法是列舉陣列中的每乙個數 x,尋找陣列中是否存在 target x。當我們使用遍歷整個陣列的方式尋找 target x 時,需要注意到每乙個位於 x 之前的元素都已經和 x 匹配過,因此不需要再進行匹配。而每乙個元素不能被使用兩次,所以我們只需要在 x 後面的元素中尋找 ...