飞絮落叶雪
分享老何的故事
飞絮落叶雪
当前位置: 首页 > 生活记录 > 正文

用C++解决一道AI解不出来的数学题

原题如下图所示,是灰狼博客辅导孩子的时候所遇到的问题,问了好几个AI都没有得到满意的答案。

09231523_ebmucvmf24tw7el9.webp

解体思路:

题目不难,但是人工计算数据量太大,借用运行快速强大的电脑来帮助我们是一个比较好的方法。

由于这些数字在题目里都是整数,而题目里面出现了分数计算,即使是分数,得到的结果也应该是整数,为了避免在计算过程中出现小数,我们把能换算的钱数扩大100倍,即以分为单位来解决,这样就不会出现小数。(即根据题意,所有变量都定义为int类型。)

代码如下:

#include <iostream>
using namespace std;

//思路,由于都是整数,题目用到了分数,所以把数据扩大100倍,以分为单位来计算。
int main() {
    //定义变量分别表示1分,2分,5分,1角,元
    int f1, f2, f5, j1, y;
    //遍历51-99元,这里即5100分,到10000分,每次增加1元
    for (y = 5100; y < 10000; y = y + 100) {
        //根据题目隐含条件,1分都是以125的增速来遍历,减少循环次数。
        for(f1 = 125; f1 < 10000; f1 = f1 + 125) {
            //根据题目条件分解计算各变量的值
            f2 = f1 / 5 * 3;
            f5 = f2 / 5 * 3;
            j1 = f5 / 5 * 3 - 7;
            //如果能兑换,则输出
            if(f1 + f2 * 2 + f5 * 5 + j1 * 10 == y){
                cout << f1 << " " << f2 << " " << f5 << " " << j1 << endl;
                cout << y << endl;
            }
        }
    }
    return 0;
}

运行结果如下图(如果人性化一点,可以把输出结果除以100再输出。):

1727162702616.jpg

感慨一下,果然是重点小学,出的题目非同凡响。

您可能还会对这些文章感兴趣!

发表评论

[点击取消回复]

电子邮件地址不会被公开。 必填项已用 * 标注

Gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

《用C++解决一道AI解不出来的数学题》有 20 条评论

  1. klcdm
    10楼
    klcdm3

    懵逼+1

    2024-10-02 17:53 来自广东省 回复
  2. Minuo
    9楼
    Minuo2

    首先,我看到分数的时候已经SB了

    2024-09-29 23:17 来自河南省 回复
  3. 老罗
    8楼
    老罗5

    很强大

    2024-09-28 09:10 来自广东省 回复
  4. 小陈故事
    7楼

    刚升初,该早点来看看何老师。早点来,我家这个现在应该也是坐在“山城七龙珠”的创新班里了。8-(

    2024-09-27 09:06 来自重庆市 回复
    • Mr.He
      Mr.He

      @小陈故事升初中都开始这么卷了吗?义务教育不都是按学区上学吗

      2024-09-27 09:54 来自安徽省 回复
  5. 老刘
    6楼
    老刘3

    太牛了吧,何老师

    2024-09-26 15:50 来自河南省 回复
  6. 老张博客
    5楼

    拿算术题来练手,好像是编程常用的方法

    2024-09-26 10:04 来自江苏省 回复
  7. 木先森
    4楼

    牛!比我小孩的奥数老师还厉害,以后不会的题就找你了。

    2024-09-25 10:45 来自广东省 回复
    • Mr.He
      Mr.He

      @木先森啊,不敢当不敢当~这个和奥数还有有一点点区别的,是用c++解决问题。

      2024-09-25 10:57 来自安徽省 回复
  8. 青山
    地板
    青山3

    高一学过一点c++,没想到今天还能让我认出这是c++,虽然只学会了 print hello world。

    2024-09-24 19:31 来自江西省 回复
    • Mr.He
      Mr.He

      @青山高中还有时间学这个呀

      2024-09-24 19:35 来自中国 回复
      • 青山
        青山3

        @Mr.He高一有,还有专门的比赛,拿奖能保送之类的。

        2024-09-24 19:42 来自江西省 回复
        • Mr.He
          Mr.He

          @青山对对对,这个是信息学奥赛,和物理数学一样,省级金奖有保送资格。

          2024-09-24 19:49 来自中国 回复
  9. 段先森
    板凳

    厉害咯,何老师

    2024-09-24 15:52 来自甘肃省 回复
    • Mr.He
      Mr.He

      @段先森过奖了,只是用了嵌套循环的一般方法。

      2024-09-24 16:14 来自安徽省 回复
  10. 老狼
    沙发
    老狼5

    666啊,佩服佩服

    2024-09-24 15:37 来自广东省 回复
    • Mr.He
      Mr.He

      @老狼小学生练习上出这样的题,纯粹是为难家长。

      2024-09-24 16:23 来自安徽省 回复