前言:
目前我们对“枚举法c语言例题”大致比较关怀,各位老铁们都想要学习一些“枚举法c语言例题”的相关文章。那么小编同时在网摘上汇集了一些有关“枚举法c语言例题””的相关资讯,希望我们能喜欢,兄弟们一起来了解一下吧!什么是枚举法?
枚举法是基于逐个尝试答案的一种问题求解策略。
由于计算机是很擅长重复计算的,我们可以很容易的用C++编程来应用枚举法。
下面笔者就举2道小学奥数题做例子吧。
题目1:
现有1分、2分、5分硬币各四枚,
用其中一些硬币支付2角3分,
一共有多少种不同的支付方法?
程序源代码:
#include <iostream>using namespace std;int main (){// 1cent,2cent,5cent, 0 ~ 4// 1*1cent + 2*2cent + 5*5cent =23 for (int x=0 ; x< 5 ; ++x){ for (int y=0; y < 5; ++y ) { for (int z=0; z < 5; ++z ) { if (1 * x + 2 * y + z * 5 ==23 ) { cout << "1cent X " << x << " + 2cent X " << y << " + 5cent X " << z << endl; } } } } return 0 ;}
测试结果:
1cent X 0 + 2cent X 4 + 5cent X 31cent X 1 + 2cent X 1 + 5cent X 41cent X 2 + 2cent X 3 + 5cent X 31cent X 3 + 2cent X 0 + 5cent X 41cent X 4 + 2cent X 2 + 5cent X 3
题目2:
有8张卡片,上面分别写着自然数1至8,
从中取出3张,使3张卡片上的数字之和为9,
问有多少种不同的取法?
程序源代码:
include <iostream>using namespace std;int main (){// x y z i, 1 ~ 8// find x + y + z =9 for (int x=1 ; x< 9 ; ++x){ for (int y=1; y < 9; ++y ) { for (int z=1; z < 9; ++z ) { if (x + y + z == 9 && (x<y) && (x<z) && (y<z) ) { cout << "x= " << x << " " << "y= " << y << " z= " << z << endl; } } } } return 0 ;}
测试结果:
x= 1 y= 2 z= 6x= 1 y= 3 z= 5x= 2 y= 3 z= 4
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #枚举法c语言例题