三笠ackermaner 2021-09-12 18:00 采纳率: 100%
浏览 56
已结题

2~10之间的数运算结果仍在2~10

输入一个210之间的正整数,假设输入值为10,则在4个10即如下: 10 10 10 10 之间或之前,任意插入数学运算符:+(加) 、 -(减) 、 *(乘) 、 /(除)、-(负号)、!(阶乘)、√(开平方,即平方根)使得整个式子的值为110。即:假设输入的值为10,则:
10 10 10 10 = 1
10 10 10 10 = 2
10 10 10 10 = 3
10 10 10 10 = 4
10 10 10 10 = 5
10 10 10 10 = 6
10 10 10 10 = 7
10 10 10 10 = 8
10 10 10 10 = 9
10 10 10 10 = 10 只要每一个式子给出一个式子即可。若不存在,则输出该式子无法给成。

  • 写回答

3条回答 默认 最新

  • 关注

    给你写了个:

    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    #include<conio.h>
    char op[5] = { '#', '+', '-', '*', '/', };
    int n;
    float cal(float x, float y, int op)
    {
        switch (op)                                    //将运算符初始化为1,2,3,4四个数字
        {
        case 1:return x + y;
        case 2:return x - y;
        case 3:return x*y;
        case 4:return x / y;
        }
    }
    //对应表达式((AoB)oC)oD
    float m1(float i, float j, float k, float t, int op1, int op2, int op3)
    {
        float r1, r2, r3;
        r1 = cal(i, j, op1);
        r2 = cal(r1, k, op2);
        r3 = cal(r2, t, op3);
        return r3;
    }
    //对应表达式(Ao(BoC))oD
    float m2(float i, float j, float k, float t, int op1, int op2, int op3)
    {
        float r1, r2, r3;
        r1 = cal(j, k, op2);
        r2 = cal(i, r1, op1);
        r3 = cal(r2, t, op3);
        return r3;
    }
    //对应表达式Ao(Bo(CoD))
    float m3(float i, float j, float k, float t, int op1, int op2, int op3)
    {
        float r1, r2, r3;
        r1 = cal(k, t, op3);
        r2 = cal(j, r1, op2);
        r3 = cal(i, r2, op1);
        return r3;
    }
    //对应表达式Ao((BoC)oD)
    float m4(float i, float j, float k, float t, int op1, int op2, int op3)
    {
        float r1, r2, r3;
        r1 = cal(j, k, op2);
        r2 = cal(r1, t, op3);
        r3 = cal(i, r2, op1);
        return r3;
    }
    //对应表达式(AoB)o(CoD)
    float m5(float i, float j, float k, float t, int op1, int op2, int op3)
    {
        float r1, r2, r3;
        r1 = cal(i, j, op1);
        r2 = cal(k, t, op3);
        r3 = cal(r1, r2, op2);
        return r3;
    }
    int get(int i, int j, int k, int t,int n)
    {
        int op1, op2, op3;
        int flag = 0;
        for (op1 = 1; op1 <= 4; op1++){                        //通过一个三重循坏列举了符号的变化情况
            for (op2 = 1; op2 <= 4; op2++){
                for (op3 = 1; op3 <= 4; op3++){
                    if (m1(i, j, k, t, op1, op2, op3) == n)
                    {
                        printf("((%d%c%d)%c%d)%c%d=%d\n", i, op[op1], j, op[op2], k, op[op3], t,n);
                        flag = 1;
                        break;
                    }
                    if (m2(i, j, k, t, op1, op2, op3) == n)
                    {
                        printf("(%d%c(%d%c%d))%c%d=%d\n", i, op[op1], j, op[op2], k, op[op3], t,n);
                        flag = 1;
                        break;
                    }
                    if (m3(i, j, k, t, op1, op2, op3) == n)
                    {
                        printf("%d%c(%d%c(%d%c%d))=%d\n", i, op[op1], j, op[op2], k, op[op3], t,n);
                        flag = 1;
                        break;
                    }
                    if (m4(i, j, k, t, op1, op2, op3) == n)
                    {
                        printf("%d%c((%d%c%d)%c%d)=%d\n", i, op[op1], j, op[op2], k, op[op3], t,n);
                        flag = 1;
                        break;
                    }
                    if (m5(i, j, k, t, op1, op2, op3) == n)
                    {
                        printf("(%d%c%d)%c(%d%c%d)=%d\n", i, op[op1], j, op[op2], k, op[op3], t,n);
                        flag = 1;
                        break;
                    }
                }
                if(flag)
                    break;
            }
            if(flag)
                    break;
        }
        return flag;
    }
    int main()
    {
        int i, j, k, t,x;
        scanf("%d",&n);
        i =j=k=t=n;
        for(x=1;x<=n;x++){
            get(i, j, k, t,x);
        }
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月21日
  • 已采纳回答 9月13日
  • 修改了问题 9月12日
  • 创建了问题 9月12日

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大