[ create a new paste ] login | about

Link: http://codepad.org/CRzlU5au    [ raw code | output | fork ]

C, pasted on Jul 27:
#include <stdio.h>
int
main()
{
  int             i, j, k, l, x;     /*i=1桁目 j=2桁目 k=3桁目 l=4桁目*/
  char            num[4];
  int             val[4], v[4 * 3 * 2][4];

  printf("input example = 1234\n");
  printf("input = ");
  scanf("%s", num);

  for (i = 0; i < 4; i++) {
    val[i] = 0;
  }

  for (i = 0; i < 4; i++) {
    val[i] = num[i] - 0x30;
  }

  x = 0;

  for(i=0; i<4; i++) {							/*一桁目*/
    for (j=0; j<4; j++) { 						/*二桁目までを見る*/
      if (i==j) 									/*一桁目と二桁目が同じなら*/
        continue;
      for (k=0; k<4; k++) { 					/*三桁目までを見る*/
        if(i==k || j==k) 						/*一桁目と三桁目が同じか、二桁目と三桁目が同じだなら*/
          continue;
        for (l=0; l<4; l++) { 				/*四桁目までを見る*/
          if(i==l || j==l || k==l) 			/*一桁目と四桁目が同じか、二桁目と四桁目が同じか、三桁目と四桁目が同じならば*/
            continue;
          v[x][0] = val[i];
          v[x][1] = val[j];
          v[x][2] = val[k];
          v[x][3] = val[l];
          x++;
        }
      }
    }
  }

  char           *op = "+-*/", o[4 * 4 * 4][3];
  x = 0;
  for (i = 0; i < 4; i++) {
    for (j = 0; j < 4; j++) {
      for (k = 0; k < 4; k++) {
        o[x][0] = op[i];
        o[x][1] = op[j];
        o[x][2] = op[k];
        x++;
      }
    }
  }

  int             vx[4];
  for (i = 0; i < 4 * 3 * 2; i++) {
    for (j = 0; j < 4 * 4 * 4; j++) {
      for (k = 0; k < 4; k++)
        vx[k] = v[i][k];
      for (k = 0; k < 3; k++) {
        if (o[j][k] == '*') {
          vx[k + 1] *= vx[k];
          vx[k] = 0;
        }
        if (o[j][k] == '/') {
          vx[k + 1] = vx[k] / vx[k + 1];
          vx[k] = 0;
        }
        if (o[j][k] == '-') {
          vx[k + 1] *= -1;
        }
      }
      for (k = 0; k < 3; k++) {
        vx[k + 1] += vx[k];
      }
      if (vx[k] == 20)
        printf("answer = %d%c%d%c%d%c%d\n", v[i][0], o[j][0], v[i][1], o[j][1], v[i][2], o[j][2], v[i][3]);
    }
  }
  return 0;
}


Output:
1
2
input example = 1234
input = 


Create a new paste based on this one


Comments: