#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;
}