4496 蓝桥杯 求函数零点 简单

4496 蓝桥杯 求函数零点 简单

cpp 复制代码
//C风格解法1,通过率100%
#include <bits/stdc++.h>  

// int a, b; 一定会自动初始化为 0

int main(){
  int a = 2, b = 3;	// 定义a,b,不会自动初始化,最好自己定义时初始化
  // windows环境下a值固定,非windows环境,如linux环境下a值不固定,即一个随机值
  scanf("%dx^2-%d", &a, &b);

  double ans = sqrt((double) b / a);
  //ans * ans <= b / a
  //(ans + 1e-4) * (ans + 1e-4) > b / a 
  ans = floor(ans * 10000) / 10000;	
  // floor是向下取整,ceil是向上取整
  //floor(1.3) = 1.0,ceil(1.3)= 2.0
  
  printf("%.4lf\n", ans);
  return 0;
}

C++ 在线工具 | 菜鸟工具 (jyshare.com)

sqrt() 函数用于计算给定参数的平方根,其函数定义如下:

cpp 复制代码
double sqrt(double x);

其中,x 表示要计算平方根的参数,sqrt() 函数返回的是 x 的平方根,返回值类型是 double 型。需要注意的是,参数 x 必须是一个非负实数,否则将出现错误。如果 x 是负数,sqrt() 函数将返回 NaN(Not-a-Number)值,如果 x 是正无穷,则返回正无穷。

复制代码
int a, b;    //mian()函数中定义a,b,不会自动初始化,最好自己定义时初始化

windows环境下a值固定,非windows环境,如linux环境下a值不固定,即一个随机值

复制代码
//double ans = sqrt((double) b / a);
//double ans = sqrt(b /(double) a);
//double ans = sqrt((double)b /(double) a);

在 C/C++ 中,int 是整除运算,如 3/2 = 1,double /int 或 int /double 或 double /double 都是真除法

复制代码
//double ans = sqrt(1.0 * b / a);
//double ans = sqrt(b / a);		//1.000000

1.0 * b 是double ,1.0 * b / (int)a 是double

a * x ^2 - b = 0,x = sqrt( b / a)

x 满足:f(x) <= 0 且 f(x + 0.0001) > 0,用向下取整,而不是四舍五入

ans * ans <= b / a,(ans + 1e-4) * (ans + 1e-4) > b / a

ans = floor(ans * 10000) / 10000;

// floor是向下取整,ceil是向上取整

//floor(1.3) = 1.0,ceil(1.3)= 2.0

//ans = ceil(ans * 10000) / 10000; //1.2248 %.4lf

//ans = (ans * 10000) / 10000; //1.2247 %.4lf 通过率60%,部分用例结果不与floor相同

//0.12345 * 10000 = 1234.5,floor(1234.5) = 1234.0,1234.0 / 10000 = 0.1234

//0.12345 * 10000 = 1234.5,ceil(1234.5) = 1235.0,1235.0 / 10000 = 0.1235

reference:

C语言sqrt函数:求平方根 (biancheng.net)

C 强制类型转换 | 菜鸟教程 (runoob.com)

C/C++ 取整函数ceil(),floor(),向上取整,向下取整_向下取整 ceil-CSDN博客

相关推荐
前端小超超11 小时前
capacitor配置ios应用图标不同尺寸
ios·蓝桥杯·cocoa
汉克老师3 天前
第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(4 、移动石子)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
旭意3 天前
C++微基础蓝桥杯之旅9.9-9.12
c++·算法·蓝桥杯
HAH-HAH3 天前
【蓝桥杯 2024 国 Java A】粉刷匠小蓝
c++·学习·数学·算法·职场和发展·蓝桥杯·组合数学
汉克老师4 天前
第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(2 、寻宝石)
c++·蓝桥杯·蓝桥杯c++·c++蓝桥杯·蓝桥杯选拔赛
汉克老师4 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
Jared_devin4 天前
二叉树算法题—— [蓝桥杯 2019 省 AB] 完全二叉树的权值
数据结构·c++·算法·职场和发展·蓝桥杯
aaaweiaaaaaa7 天前
c++基础学习(学习蓝桥杯 ros2有C基础可看)
c++·学习·蓝桥杯·lambda·ros2·智能指针·c++类
汉克老师7 天前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(4、最大空白区)
c++·算法·蓝桥杯·蓝桥杯c++·c++蓝桥杯
scx201310048 天前
P13929 [蓝桥杯 2022 省 Java B] 山 题解
c++·算法·蓝桥杯·洛谷