正文

stu(1191)2005-08-30 20:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/4276.html

分享到:

#include <stdio.h> #include <math.h> #define TheBigNumber 9999999            //出错信息 #define Epslon 0.0000000001 typedef double (*pfddd)( double, double); double add( double, double); double sub( double, double); double mult( double, double); double div( double, double); void convert( char, int); int cardsnum[4]; int is24 (double x) { return fabs(x - 24) < Epslon ; } void test( char a, char b, char c, char d) {    pfddd f[4] = {add, sub, mult, div};    char  o[4] = {'+', '-', '*', '/'};    int i, j, k, l, m, n;    convert( a, 0);    convert( b, 1);    convert( c, 2);    convert( d, 3);    for (i = 0; i < 4; ++i)       for (j = 0; j < 4; ++j) {          if (j == i)             continue;          for (k = 0; k < 4; ++k) {             if (k == i || k == j)                continue;             for (l = 0; l < 4; ++l)                for (m = 0; m < 4; ++m)                   for (n = 0; n < 4; ++n)                      if (is24 (f[n]( f[m]( f[l](cardsnum[i], cardsnum[j]), cardsnum[k]), cardsnum[6-i-j-k]))) {                         /*printf( "((%d %c %d) %c %d) %c %d\n",                                  cardsnum[i], o[l], cardsnum[j], o[m], cardsnum[k], o[n], cardsnum[6-i-j-k]);*/                         printf( "yes\n");                         return;                      } else if (is24 (f[n]( f[l](cardsnum[i], f[m]( cardsnum[j], cardsnum[k])), cardsnum[6-i-j-k]))) {                         /*printf( "(%d %c (%d %c %d)) %c %d\n",                                  cardsnum[i], o[l], cardsnum[j], o[m], cardsnum[k], o[n], cardsnum[6-i-j-k]);*/                         printf( "yes\n");                         return;                      } else if (is24 (f[m]( f[l](cardsnum[i], cardsnum[j]), f[n]( cardsnum[k], cardsnum[6-i-j-k])))) {                         /*printf( "(%d %c %d) %c (%d %c %d)\n",                                  cardsnum[i], o[l], cardsnum[j], o[m], cardsnum[k], o[n], cardsnum[6-i-j-k]);*/                         printf( "yes\n");                         return;                      } else if (is24 (f[l](cardsnum[i], f[n]( f[m]( cardsnum[j], cardsnum[k]), cardsnum[6-i-j-k])))) {                         /*printf( "%d %c ((%d %c %d) %c %d)\n",                                  cardsnum[i], o[l], cardsnum[j], o[m], cardsnum[k], o[n], cardsnum[6-i-j-k]);*/                         printf( "yes\n");                         return;                      } else if (is24 (f[l](cardsnum[i], f[m]( cardsnum[j], f[n]( cardsnum[k], cardsnum[6-i-j-k]))))) {                         /*printf( "%d %c (%d %c (%d %c %d))\n",                                  cardsnum[i], o[l], cardsnum[j], o[m], cardsnum[k], o[n], cardsnum[6-i-j-k]);*/                         printf( "yes\n");                         return;                      }          }       }    printf( "no\n");    return; }

阅读(2764) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册