zoukankan      html  css  js  c++  java
  • 小学数学题一则1…9=100

    1 2 3 4 5 6 7 8 9=100 填入+=*/使得结果=100 不用括号

    好像没有特别好的通用解法,编程穷举了一下

    int Algorithm_100()
    {
     int i,j,n,nRet=0;
     float fnum[32],fres;
     TCHAR szOperate[]="+-x/",szOper[10]={0},szText[256]={0};
     for(i=0; i<65536; i++)//8个运算符,4种可能,8的4次方=65536
     {
      n = 0;
      fnum[0] = 1;
      for(j=0; j<8; j++)
      {
       szOper[j] = szOperate[(i>>(j*2))&3];
       if(szOper[j] == 'x')
       {
        fnum[n] *= (j+2);
       } else if(szOper[j] == '/') // /
       {
        fnum[n] /= (j+2);
       } else // + -
       {
        fnum[++n] = szOper[j];
        fnum[++n] = j+2;
       }
      }
      fres = fnum[0];
      // cac result
      for(j=1; j<n; j+=2)
      {
       if(fnum[j] == '+') //+
        fres += fnum[j+1];
       else
        fres -= fnum[j+1];
      }
      if(fres == 100)
      {
       for(j=0; j<9; j++)
       {
        szText[j*2+0] = '1'+j;
        szText[j*2+1] = szOper[j];
       }
       TRACE(szText);// 输出结果
       nRet++;
      }
     }
     return nRet;
    }

    结果如下:

    1x2x3x4+5+6+7x8+9
    1-2+3x4x5+6x7+8-9
    1-2+3x4x5-6+7x8-9
    1+2+3+4+5+6+7+8x9 最容易想到的一个
    1x2x3+4+5+6+7+8x9
    1-2x3+4x5+6+7+8x9
    1+2x3+4x5-6+7+8x9
    1-2x3-4+5x6+7+8x9
    1+2-3x4+5x6+7+8x9
    1+2x3x4x5/6+7+8x9
    1x2x3x4+5+6-7+8x9
    1-2x3-4-5+6x7+8x9
    1+2-3x4-5+6x7+8x9
    1+2+3-4x5+6x7+8x9
    1x2x3-4x5+6x7+8x9

  • 相关阅读:
    Unity3D性能优化之资源导入标准和属性设置篇
    博客主题-Next风格
    Pytorch 搭建 LeNet-5 网络
    CIFAR数据集解读
    Mnist数据集解读
    博客主题——cnbook
    博客主题——element v2
    更换清华镜像源
    图像插值技术——双线性插值法
    PASCAL VOC2012数据集解读
  • 原文地址:https://www.cnblogs.com/chaos77/p/6034429.html
Copyright © 2011-2022 走看看