33,028
社区成员
发帖
与我相关
我的任务
分享int cout100()
{
//op: 0表示加,1表示减,2表示乘,3表示除,4表示连接
//优先顺序分三个级别为op/2
int n = (int)pow(5,8);
int seq = 0;
double c[4];
int op[4];
int i = 0, j = 0, k = 0;
int mop, mi = 0;
int count = 0;
for (i=0; i<n; i++)
{
if (i == 141969)
{
i = 141969;
}
seq = i;
for (k=0;k<3;k++)
{
c[k] = k+1;
op[k] = seq%5;
seq /= 5;
}
for (j=4;j<=11;j++)//为了方便得出和,取到11
{
mop = op[0];
mi = 0;
for (k=1;k<3;k++)
{
if (mop/2 < op[k]/2)
{
mop = op[k];
mi = k;
}
else
{
break;
}
}
c[3] = j;
switch(mop)
{
case 0:
c[mi] += c[mi+1];
break;
case 1:
c[mi] -= c[mi+1];
break;
case 2:
c[mi] *= c[mi+1];
break;
case 3:
c[mi] /= c[mi+1];
break;
case 4:
c[mi] = c[mi]*10 + c[mi+1];
break;
}
for (k=mi;k<2;k++)
{
op[k] = op[k+1];
c[k+1] = c[k+2];
}
op[2] = seq%5;
seq = seq/5;
}
if (c[0] == 100)
{
count++;
}
}
return count;
}seq = i;
printf("%d 1", i);
for (int j=2;j<=9;j++)
{
switch(seq%5)
{
case 0:
printf("+");
break;
case 1:
printf("-");
break;
case 2:
printf("*");
break;
case 3:
printf("/");
break;
}
printf("%d",j);
seq = seq/5;
}
printf("\n");