C#穷举

穷举:

   穷举法的基本思想是根据题目的部分条件确定答案的大致范围, 并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕。若某个情况验证符合题目的全部条件,则为本问题的一个解;若全部情况验证后都不符合题目的全部条件, 则本题无解。穷举法也称为枚举法。

穷举练习:

int n = 1;
            for (int i = 0; 2 * i <= 100; i++)
            {
                for (int a = 0; 5 * a <= 100; a++)
                {
                    for (int k = 0; 10 * k <= 100; k++)
                    {
                        for (int x = 0; 15 * x <= 100; x++)
                        {
                            if (2 * i + 5 * a +10*k+15*x== 100)
                            {
                                Console.WriteLine(n);
                                Console.WriteLine("铅笔盒:{0}", a);
                                Console.WriteLine("铅笔:{0}", i);
                                Console.WriteLine("文件夹:{0}", k);
                                Console.WriteLine("彩笔:{0}", x);
                                n++;
                            }
                        }
                    }
                }
            }
            #endregion
            Console.ReadLine();

时间: 2024-09-30 23:51:50

C#穷举的相关文章

C#跳转语句 迭代法 穷举法

一.跳转语句 break & continue break:跳出循环,终止此循环,不管下面还有多少次,全部跳过. string a=" ", for (int i=1;i<=10;I++) { if(i==5) { break; } a += i +",": } Console.WriteLine(a); 输出结果为 1,2,3,4,5 continue:终止此次循环,直接开始下次循环. string a=" ", for (int

2016年10月10日--穷举、迭代、while循环

穷举 将所有可能性全部全部走一遍,使用IF筛选出满足的情况 练习: 1.单位给发了一张150元购物卡, 拿着到超市买三类洗化用品. 洗发水15元,香皂2元,牙刷5元. 求刚好花完150元,有多少种买法, 没种买法都是各买几样? int i = 0; int j = 0; for (int x = 0; x <= 10; x++) { for (int y = 0; y <= 30; y++) { for (int z = 0; z <= 75; z++) { j++; if (x * 1

穷举练习——7月24日

穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况 练习一:购物 //单位给发了一张150元购物卡,拿着到超市买三种洗化用品, //洗发水15元(x).香皂2元(z),牙刷5元(y), //求刚好花完150元有多少种买法,每种买法都是各买几样 int sum = 0; for (int x = 0; x * 15 <= 150; x++) { for (int y = 0; y * 5 <= 150; y++) { for (int z = 0; z * 2 <= 150

穷举迭代03/10

穷举迭代03/10 for循环拥有两类: 1.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. for循环拥有两类: 2.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. for循环  for(int i = 1; i<=5;i++) { 循环体: } while样式      int i= 1: while(表达式(i<=5)) { 循环体: 状态改变(i++): } do while 样式    do { 循环体: 状态改变(i++); }whi

for 穷举 迭代

for循环拥有两类:穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 迭代:从初始情况按照规律不断求解中间情况,最终推导出结果. 案例: //单位给发了一张150元购物卡, //拿着到超市买三类洗化用品. //洗发水15元,香皂2元,牙刷5元. //求刚好花完150元,有多少种买法, //每种买法都是各买几样? //设洗发水x 150/15==10 //牙刷y 150/5==30 //香皂z 150/2==75 int sum = 0; int biao = 0; for (

什么叫穷举法?

穷举法的基本思想是根据题目的部分条件确定答案的大致范围,并在此范围内对所有可能的情况逐一验证,直到全部情况验证完毕.若某个情况验证符合题目的全部条件,则为本问题的一个解:若全部情况验证后都不符合题目的全部条件,则本题无解.穷举法也称为枚举法. 用穷举法解题时,就是按照某种方式列举问题答案的过程.针对问题的数据类型而言,常用的列举方法一有如下三种: (1)顺序列举 是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举. (2)排列列举 有时答案的数据形式是一组数的

[C++11][算法][穷举]输出背包问题的所有可满足解

关于背包问题的题目,前人之述备矣,这里只讨论实现 输入: n ca w_1 v_1 w_2 v_2 ... w_n v_n 其中,n是物品总数,ca是背包大小,w_n是第n个物品的重量,v_n是第n个物品的价值 输出: v_1 x v_2 x v_3 x ... 其中,v_n是当前情况为x时背包的价值,x是一串序列,由0,1组成,表示是否放入背包 如: 1001就表示第一个和最后一个物品放入背包,中间两个物品不放入 要求编写一个程序,输出所有可满足解. 思路很简单,就是穷举.穷举每一个情况. 伪

HDU 5339 Untitled (递归穷举)

题意:给定一个序列,要求从这个序列中挑出k个数字,使得n%a1%a2%a3....=0(顺序随你意).求k的最小值. 思路:排个序,从大的数开始模起,这是因为小的模完还能模大的么? 每个元素可以选,也可以不选,两种情况.递归穷举每个可能性,O(2n). 1 //#include <bits/stdc++.h> 2 #include <cstdio> 3 #include <cstring> 4 #include <map> 5 #include <al

15-07-03 语句- for () 循环语句-穷举法

for()  穷举法 用循环把各种可能的情况都走一遍,然后用if条件把满足要求的结果给筛选出来. 例如:1.找100以内的偶数 for (int i = 0; i <= 100; i++) { if (i % 2 == 0) { Console.WriteLine(i); } } 2.小明单位发了50元的购物卡,他到超市买洗化用品,一是牙刷(5元),二是香皂(2元),三是牙膏(10元)怎么可以正好把五十元花完. for (int ys = 0; ys <= 10; ys++) { for (i

70.Climbing Stairs(法1递归穷举法2动态规划)

You are climbing a stair case. It takes n steps to reachto the top. Each time you can either climb 1 or 2 steps. In how many distinct ways canyou climb to the top? HideTags Dynamic Programming #pragma once #include<iostream> using namespace std; //法