2014.8.19穷举法

穷举法(for循环嵌套)

eg:

 1 //100购物券,香皂2元,牙刷5元,洗发水15元,购物券不找零,每样至少买一个,哪个组合能吧100元正好花完
 2 int count = 0;
 3 for (int i = 1; i <= 40; i++)//香皂穷举
 4 {
 5     for (int j = 1; j <= 17; j++)//牙刷穷举
 6     {
 7         for (int k = 1; k <= 7; k++)//洗发水穷举
 8         {
 9 if (2 * i + 5 * j + 15 * k == 100)//判断总和是否正好等于100
10 {
11     Console.WriteLine("香皂{0}块,牙刷{1}只,洗发水{2}瓶", i, j, k);
12     count = count + 1;//所有种类的总数
13 }
14         }
15     }
16 }
17 Console.WriteLine(count);

输出结果为

eg:

2014.8.19穷举法

时间: 2024-12-20 17:46:31

2014.8.19穷举法的相关文章

HDU 1017 A Mathematical Curiosity【看懂题意+穷举法】

//2014.10.17    01:19 //题意: //先输入一个数N,然后分块输入,每块输入每次2个数,n,m,直到n,m同一时候为零时 //结束,当a和b满足题目要求时那么这对a和b就是一组 //注意: //每一块的输出中间有一个回车 A Mathematical Curiosity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s)

什么叫穷举法?

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

2017.02.24C# 跳转语句,迭代法,穷举法,异常语句处理。

一,跳转语句(1)break: 代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace @break 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 Int32 a = 0; 13 for(a=0;a<25;a++) 14 { 15 Consol

穷举法解决旅行商问题

一.问题描述 如图所示,一个旅行商从A点出发,需要不重复地走遍5个城市ABCDE,最后回到A.每个城市之间的花费(即权值)如图所示,现在要求找出一条总花费最小的路径,即权值和为最小的路径. 二.     算法说明 1.    算法一: 登山法(贪心法) 即在每一个城市出发前比较接下来所能走的城市花费(权值),找出权值最小的走. 优缺点:由于只是在每个城市局部地考虑权值最小,但当走完所用城市后,所得到权值和不一定为最小,所以采用此算法得不到精确解,但此算法复杂度较低. 2.  算法二:穷举法(本程

穷举法解决问题(1,2)

一,换分币问题: /* *Copyright (c)2014烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:sum.cpp *作 者:林海云 *完成日期:2014年11月4日 *版 本 号:v1.0 * *问题描述: 将一元人民币兑换成1分,2分,5分硬币,有多少种不同的兑换方法? *程序输出:输出可能的方案 */ #include <iostream> using namespace std ; int main () { int i ,j,k,coun

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

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

for循环的应用:迭代法和穷举法

for()循环.四要素:初始条件,循环条件,状态改变,循环体.执行过程:初始条件--循环条件--循环体--状态改变--循环条件....注意:for的小括号里面分号隔开,for的小括号后不要加分号.for的嵌套.应用:迭代法,穷举法.一.迭代法:有一定规律. 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备. 二.穷举法:用循环把各种可能的情况都给走一遍,然后用if条件把满足要求的结果给筛选出来.

穷举法

穷举法是一种用来暴力破解某些数字组合时候用到的一种方法. 实际应用呢,例如:列举一个三位数,是11的倍数,且个位.十位.百位不相等. 代码: #include<iostream> using namespace std; int main() { int i; cout<<"11的倍数,且个位十位百位不相等:"<<endl; for (i=100; i<1000; i++) { //个位 int g = i%10; //十位 int s = i