Metal Steak

Hard to eat

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  0 Posts :: 79 Stories :: 0 Comments :: 0 Trackbacks

公告

aaaaaaaaaaaa

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

#include <iostream>
using namespace std;

int backup[5], t[6][5], flag = false;

void swap(int* a, int* b)
{
    
int tmp = *a;
    
*= *b;
    
*= tmp;
}

void dfs(int ci, int* next);

int main()
{
    
for(int i = 1; i <= 4; i++)
        cin 
>> backup[i];

    dfs(
4, backup);

    cout 
<< "No Answer!" << endl;

    
return 0;
}

void dfs(int ci, int* next)
{
    
if(ci > 1)
        
for(int i = 1; i <= ci - 1; i++)
            
for(int j = i + 1; j <= ci; j++)
            {
                
int a = next[i], b = next[j];
                
if(a < b)
                    swap(
&a, &b);
                t[
5 - ci][1= a;
                t[
5 - ci][2= b;
                t[
5 - ci][4= -1;
                
int cnt = 0, n[5= {00000};
                
for(int k = 1; k <= ci; k++)
                    
if((k != i) && (k != j))
                        n[
++cnt] = next[k];
                
for(int k = 1; k <= 4; k++)
                {
                    
switch(k)
                    {
                        
case 1: t[5 - ci][3= a + b;
                                t[
5 - ci][4= 1;
                                
break;
                        
case 2: t[5 - ci][3= a - b;
                                t[
5 - ci][4= 2;
                                
break;
                        
case 3: t[5 - ci][3= a * b;
                                t[
5 - ci][4= 3;
                                
break;
                        
case 4if((b != 0&& (a % b == 0))
                                {
                                    t[
5 - ci][3= a / b;
                                    t[
5 - ci][4= 4;
                                }
                                
break;
                    }
                    
if(t[5 - ci][4!= -1)
                    {
                        n[cnt 
+ 1= t[5 - ci][3];
                        dfs(ci 
- 1, n);
                    }
                }
            }
    
else
        
if(next[1== 24)
        {
            
for(int i = 1; i <= 3; i++)
            {
                cout 
<< t[i][1];
                
switch(t[i][4])
                {
                    
case 1: cout << "+" << t[i][2<< "=" << t[i][3<< endl;
                            
break;
                    
case 2: cout << "-" << t[i][2<< "=" << t[i][3<< endl;
                            
break;
                    
case 3: cout << "*" << t[i][2<< "=" << t[i][3<< endl;
                            
break;
                    
case 4: cout << "/" << t[i][2<< "=" << t[i][3<< endl;
                            
break;
                }
            }
            exit(
0);
        }
}

posted on 2009-09-15 21:21 mad4alcohol 阅读(130) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航:   博客园   博客园最新博文   博问   管理