首页 > 其他分享 >浮点数二分(数的三次方)(银行贷款)

浮点数二分(数的三次方)(银行贷款)

时间:2023-04-02 16:16:53浏览次数:51  
标签:二分 lf int double 浮点数 mid 三次方 100

// 数的三次方(给出浮点数n)
// AcWing 790

#include <stdio.h>

double n;

int main()
{
    scanf("%lf", &n);
    double l = -100, r = 100;
    while (r - l > 1e-8)
    {
        double mid = (l + r) / 2;
        if (mid * mid * mid <= n)
            l = mid;
        else
            r = mid;
    }
    printf("%lf\n", l);
    return 0;
}
    while (r - l > 1e-8)
浮点数运算会出现精度错误(误差)。

利用枚举(for (int i = 1; i <= 100; i++))优化:
// 数的三次方(给出浮点数n)
// AcWing 790

#include <stdio.h>

double n;

int main()
{
    scanf("%lf", &n);
    double l = -100, r = 100;
    for (int i = 1; i <= 100; i++)
    {
        double mid = (l + r) / 2;
        if (mid * mid * mid <= n)
            l = mid;
        else
            r = mid;
    }
    printf("%lf\n", l);
    return 0;
}

 

练习:

 

 

// 洛谷P1163 银行贷款

#include <stdio.h>
#include <math.h>
double a, b, c;

int main()
{
    scanf("%lf %lf %lf", &a, &b, &c);
    double l = 0, r = 1000;
    while (l < r - 1e-4)
    {
        double mid = (l + r) / 2;
        double w = a;               // 未还的钱
        for (int i = 0; i < c; ++i) // 模拟还钱过程。
            w = w - b + w * (mid / 100);
        if (w < 0.0001)
            l = mid;
        else
            r = mid;
    }
    printf("%0.1f\n", round(l * 10) / 10);
    return 0;
}

 

 

标签:二分,lf,int,double,浮点数,mid,三次方,100
From: https://www.cnblogs.com/gjkt2001/p/17280653.html

相关文章

  • 二分查找
    #include<stdio.h>#defineN100010intn,q;intarray[N];//N的范围来确定数组开的范围(0,n],开的范围要比n大,10//第一次出现位置intnum_1(intq[],intlen,intx){intl=-1,r=len;while(l+1<r){intmid=(l+r)/2;......
  • 《Mysql基础》【Mysql小数浮点数】double float decimal数据类型 编程入门 学习分享
    -- --mysql数据库程序设计笔记:-------------小数测试--------------------double浮点小数(最多小数位后15位,)使用8个字节存储。--float单精度小数:(最多小数位后6位)使用4个字节存储。--举例保留2位:float(18,2),或:double(20,2)--decimal(最多小数位后30位)(存储空间更优,更小,......
  • 分巧克力(二分法)
    题目描述儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是Hi×Wi的方格组成的长方形。为了公平起见,小明需要从这N块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:形状是正方形,边长是整数;......
  • php 浮点数转int精度丢失问题解决办法
    方案一:先将浮点金额strval后再转int。(推荐)$param['order_price']=intval(strval($param['order_price']*100)); 方案二: echoround(19.99*100); 这种方案出来是......
  • 二分查找变形
    packagetest;importjava.util.Arrays;publicclassN172{ publicstaticvoidmain(String[]args){ int[]a={1,34,4,4,5,4,6,2345,0}; Arrays.......
  • 整体二分总结
    整体二分总结整体二分,就是一种高效离线处理可二分答案的询问的方法,可以代替例如树套树这种高级数据结构。例题:1.P1527[国家集训队]矩阵乘法题意:多次询问,求子矩阵第\(k......
  • 二分法
    关于二分法:二分法使用要求待查找的数据集必须有序二分法的缺陷针对开头结尾的数据查找效率很低常见算法的原理以及伪代码二分法、冒泡、快拍、插入、堆排、桶排、数......
  • 2023.3.28 【模板】KM算法 | 二分图最大权完美匹配
    2023.3.28【模板】KM算法|二分图最大权完美匹配题目概述给定一张二分图,左右部均有\(n\)个点,共有\(m\)条带权边,且保证有完美匹配。求一种完美匹配的方案,使得最终......
  • LeetCode 周赛 338,贪心 / 埃氏筛 / 欧氏线性筛 / 前缀和 / 二分查找 / 拓扑排序
    本文已收录到AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。大家好,我是小彭。上周末是LeetCode第338场周赛,你参加了吗?这场周赛覆盖的知识点很多,第四题......
  • 二分查找
    #define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//intmain()//{// inta;// intb;// printf("请输入两个整数:\n");// scanf("%d%d",&a,&b);// floatc=......