【算法】枚舉法


  • 描述:枚舉法是對所有候選解一一列舉,並檢查每一個解是否符合要求,由於枚舉法要對所有候選解進行檢查,故枚舉法時間性能較差,並只適用於候選解數量有限、可枚舉的場合;
  • 舉例:用50元錢買了三種水果:西瓜、蘋果和桔子。各種水果加起來一共100個。假如,西瓜5元一個,蘋果1元一個,桔子1元3個,設計一算法輸出每種水果各買了幾個。此時即可用枚舉法:設西瓜購買了x個,蘋果y個,桔子z個;則x、y、z滿足一下約束條件:x+y+z=100; 5x+y+z/3=50;
  • 代碼
    #include<iostream>
    using namespace std;
    
    int main(){
        int x=0,y=0,z=0;
        for(int i=0; i<10; i++)
        {
            for(int j=0; j<50-5*x; j++){//此處,用兩個for循環進行枚舉
                z=3*(50-5*x-y);
                if(x+y+z==100){
                    cout<<x<<" "<<y<<" "<<z<<endl;
                }
            }
        }
        return 0;
    }

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM