穷举法算法练习

这篇博客通过三个问题展示了穷举法在求解一元三次方程、判断完数和确定安全放入鱼缸的鱼的大小问题上的应用。解题思路包括设置适当的取值范围和步长,遍历并判断条件,以及处理边界情况。
摘要由CSDN通过智能技术生成

穷举法算法练习

Problem1:求解一元三次方程问题

  • Problem Description

    有一个一元三次方程ax3+bx2+cx+d=0,给出所有的系数,并规定该方程存在3个不同的实根(根范围为-100~100),且根与根之差的绝对值>=1。要求从小到大一次在同一行输出这3个根,并精确到小数点后两位。

  • Input

    包含4个实数,a,b,c,d,各实数之间用空格隔开。

  • Output

    从小到大的3个实根。各跟之间用空格隔开。

  • Sample Input

      1 -5 -4 20
    
  • Sample Output

      -2.00 2.00 5.00
    
  • 解题思路

    • 穷举法。查找取值范围i为-100到100,步长为0.01,为了方便运算,将i扩大100倍,即i为-10000~10000,步长为1,再将x=i/100。
    • f=ax3+bx2+cx+d,如果 | f | <0.0001,则对应根与根之差的绝对值>=1。满足根的条件,即为x的一个解。
  • Answer

    #include <stdio.h>
    #include <stdlib.h>
    double a,b,c,d;
    void sort(){
         
        //控制空格,输出空格间隔
        int num = 0;
        for(int i=-10000;i<10000;i++){
         
            double x=i/100.0;
            double f=a*x*x*x+b*x*x+c*x+d;
            if (f>-0.0001&&f<0.0001){
         
                //保留小数点后两位
                printf("%.2f",x);
                if (num!=2) {
         
                    printf(" ");
                }
                num++;
            }
        }
    }
    int main()
    {
         
        scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
        sort<
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值