一、题目描述
随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
二、问题分析
使用枚举就能解决问题,难点在于如何减少重复枚举的条件和输出带括号的表达式,这里使用了枚举来输出。
三、算法设计
四、代码实现
函数实现
int main()
{
add();
system("pause");
}
void add()//依次枚举所有的可能
{
int a[4];
for (a[0]=1; a[0] < 14; a[0]++)
for (a[1]=1; a[1] < 14; a[1]++)
for (a[2]=1; a[2] < 14; a[2]++)
for (a[3]=1; a[3] < 14; a[3]++)
{
calculate0(a[0],a[1],a[2],a[3]);
}
}
int calculate0(int q,int w,int e,int r)//将输入的数字进行按所有可能的运算符排列进行计算
{
int d[4] = {
q,w,e,r };
int a, b, c;
int i[3] = {
0,0,0 };
for(;i[0]<6;i[0]++)
for(; i[1] < 6; i[1]++)
for (; i[2] < 6; i[2]++)
{
switch (i