小墨在努力!!
吗了个b的。。。。。
 1 #include <cstdio>
 2 #include <string.h>
 3 #include <string>
 4 #include <algorithm>
 5 using namespace std;
 6 bool visitIs[30] ,judge;
 7 int ans[6] ,N[26] ,total;
 8 long long target ,sum;
 9 void set(char *a)
10 {
11      int i ,len;
12      for(i = 0 ;i < 30 ;i++)
13         visitIs[i] = false;
14      judge = false;
15      len = strlen(a);
16      sum = 0 ;
17      total = -1;
18      for(i = 0 ;i < len ;i++)
19         N[++total] = (int)a[i] - 64;
20      sort(N ,N + total);
21 }
22 void solve(int n)
23 {
24      int i ,j;
25      long num;
26      if(n == 6)
27      {
28           if(target == sum)
29                judge = true;
30           return ;
31      }
32      for(i = total ;i >= 0 ;i--)
33      {
34           if(visitIs[i] == false)
35           {
36                 num = -1;
37                 for(j = 1 ;j <= n ;j++)
38                     num = num * N[i] * (-1);
39                 sum = sum + num;
40                 visitIs[i] = true;
41                 ans[n] = N[i];
42                 solve(n + 1);
43                 if(judge == true) return ;
44                 sum = sum - num;
45                 visitIs[i] = false;
46           }
47      }
48 }
49 int main()
50 {
51      char str[12];
52      while(scanf("%lld %s",&target ,str))
53      {
54           string s = str;
55           if(target == 0 && s == "END") break;
56           else
57           {
58                set(str);
59                solve(1);
60                if(judge == true)
61                     for(int i = 1 ;i <= 5 ;i++)
62                         printf("%c",(char)(ans[i] + 64));
63                else
64                     printf("no solution");
65                printf("\n");
66           }
67      }
68 }

好久没有写代码了,感觉怎么这么手生呢!!!!

posted on 2012-04-14 19:33  小墨在努力!!  阅读(450)  评论(0编辑  收藏  举报