【C++】數字cmath庫常用函數

菜鳥傳送門:https://www.runoob.com/cplusplus/cpp-numbers.html

作者廢話:作為一個從業3年的JS人,現在重拾C++,雖然眾多語言都有很多相似之處(至少算法,數學運算,數據結構等等那些都是相同的),但我仍然認為數字這塊是值得仔細去看的。畢竟JS作為一個無類型的語言,在內存管理極為嚴格的C++面前,二者的差距是比較大的。
在這里,順便推薦一個安卓軟件:C4droid。是本人目前用過的最好用的適合初學者/刷題使用的移動端編程軟件。這樣就可以隨時隨地刷題了(bushi

C++ 定義數字

#include <iostream>
using namespace std;int main()
{// 數字定義short s;int i;long l;float f;double d;// 數字賦值s = 10;i = 1000;l = 1000000;f = 230.47;d = 30949.374;// 數字輸出cout << "short  s :" << s << endl;cout << "int    i :" << i << endl;cout << "long   l :" << l << endl;cout << "float  f :" << f << endl;cout << "double d :" << d << endl;return 0;
}

運行結果:
在這里插入圖片描述

C++ 數學運算

C++的標準庫中也提供了很多豐富的數學運算函數,注意我們在定義變量的時候不能和這些函數重名(有些時候不是很方便,不是么,但這就是C++)。
要使用這些函數,您需要引用數學頭文件 <cmath>

#include <cmath>
函數描述
double cos(double);該函數返回弧度角(double 型)的余弦。
double sin(double);該函數返回弧度角(double 型)的正弦。
double tan(double);該函數返回弧度角(double 型)的正切。
double log(double);該函數返回參數的自然對數。
double pow(double, double);假設第一個參數為 x,第二個參數為 y,則該函數返回 x 的 y 次方。
double hypot(double, double);該函數返回兩個參數的平方總和的平方根,也就是說,參數為一個直角三角形的兩個直角邊,函數會返回斜邊的長度。
double sqrt(double);該函數返回參數的平方根。
int abs(int);該函數返回整數的絕對值。
double fabs(double);該函數返回任意一個浮點數的絕對值。
double floor(double);該函數返回一個小于或等于傳入參數的最大整數。

在我們上面的代碼里添加數學運算的部分

#include <iostream>
#include <cmath>
using namespace std;int main()
{// 數字定義short s;int i;long l;float f;double d;// 數字賦值s = 10;i = 1000;l = 1000000;f = 230.47;d = 30949.374;// 數字輸出cout << "數字輸出" << endl;cout << "short  s :" << s << endl;cout << "int    i :" << i << endl;cout << "long   l :" << l << endl;cout << "float  f :" << f << endl;cout << "double d :" << d << endl;// 數學運算cout << "數學運算" << endl;cout << "sin(d) :" << sin(d) << endl;cout << "abs(i)  :" << abs(i) << endl;cout << "floor(d) :" << floor(d) << endl;cout << "sqrt(f) :" << sqrt(f) << endl;cout << "pow( d, 2) :" << pow(d, 2) << endl;return 0;
}

運行結果
在這里插入圖片描述

C++ 隨機數

#include <iostream>
#include <ctime>
#include <cstdlib>using namespace std;int main ()
{int i,j;// 設置種子srand( (unsigned)time( NULL ) );/* 生成 10 個隨機數 */for( i = 0; i < 10; i++ ){// 生成實際的隨機數j= rand();cout <<"隨機數: " << j << endl;}return 0;
}

運行結果

隨機數: 1748144778
隨機數: 630873888
隨機數: 2134540646
隨機數: 219404170
隨機數: 902129458
隨機數: 920445370
隨機數: 1319072661
隨機數: 257938873
隨機數: 1256201101
隨機數: 580322989

C++ 數學常數

#include <iostream>
#include <cmath>
#include <numbers>int main() {// πstd::cout << "pi: " << std::numbers::pi << std::endl;// 自然對數的底數 e (Euler's Number)std::cout << "e: " << std::numbers::e << std::endl;// 黃金比例 φ (Golden Ratio)std::cout << "phi: " << std::numbers::phi << std::endl;return 0;
}

運行結果

pi: 3.14159
e: 2.71828
phi: 1.61803

C++ 標準庫

完整版菜鳥傳送門:https://www.runoob.com/cplusplus/cpp-libs-cmath.html
這里我只列出幾個常用的

函數功能示例
abs(x)計算整數 x 的絕對值abs(-5) // 5
exp(x)計算 e^x,e 為自然對數的底數exp(1) // 2.71828…
log(x)計算 x 的自然對數log(2.71828) // 1
log10(x)計算 x 的以 10 為底的對數log10(100) // 2
pow(x, y)計算 x 的 y 次方pow(2, 3) // 8
sqrt(x)計算 x 的平方根sqrt(16) // 4
sin(x)計算 x 的正弦值,x 以弧度為單位sin(3.14159 / 2) // 1
cos(x)計算 x 的余弦值,x 以弧度為單位cos(3.14159) // -1
tan(x)計算 x 的正切值,x 以弧度為單位tan(0) // 0
ceil(x)返回不小于 x 的最小整數ceil(2.3) // 3
floor(x)返回不大于 x 的最大整數floor(2.3) // 2

運行一下,注意這里需要引入cmath

	// cmath庫常用函數cout << "cmath庫常用函數" << endl;cout << "abs(-10)=" << abs(-10) << endl;cout << "exp(1)=" << exp(1) << endl;cout << "log(10)=" << log(10) << endl;cout << "log10(1000)=" << log10(1000) << endl;cout << "pow(10,2)=" << pow(10,2) << endl;cout << "floor(10.23)=" << floor(10.23) << endl;cout << "ceil(-10.23)=" << ceil(-10.23) << endl;

運行結果
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/916446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/916446.shtml
英文地址,請注明出處:http://en.pswp.cn/news/916446.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

神經網絡(第二課第一周)

文章目錄神經網絡&#xff08;第二課第一周&#xff09;&#xff08;一&#xff09;神經網絡的內涵&#xff08;二&#xff09;如何構建神經元層1、tensorflow如何處理數據&#xff08;Tensorflow 是由 Google 開發的機器學習包。&#xff09;2、詳細的一些實驗代碼&#xff0c…

CCF-GESP 等級考試 2025年6月認證C++七級真題解析

1 單選題&#xff08;每題 2 分&#xff0c;共 30 分&#xff09;第1題 已知小寫字母 b 的ASCII碼為98&#xff0c;下列C代碼的輸出結果是&#xff08; &#xff09;。#include <iostream>using namespace std;int main() { char a b ^ 4; cout << a; …

【HarmonyOS】鴻蒙應用開發中常用的三方庫介紹和使用示例

【HarmonyOS】鴻蒙應用開發中常用的三方庫介紹和使用示例 截止到2025年&#xff0c;目前參考官方文檔&#xff1a;訪問 HarmonyOS三方庫中心 。梳理了以下熱門下載量和常用的三方庫。 上述庫的組合&#xff0c;可快速實現網絡請求、UI搭建、狀態管理等核心功能&#xff0c;顯著…

SpringBoot 獲取請求參數的常用注解

SpringBoot 提供了多種注解來方便地從 HTTP 請求中獲取參數以下是主要的注解及其用法&#xff1a;1. RequestParam用于獲取查詢參數(URL 參數)&#xff0c;適用于 GET 請求或 POST 表單提交。GetMapping("/user") public String getUser(RequestParam("id"…

【Linux篇章】Socket 套接字,竟讓 UDP 網絡通信如此絲滑,成為一招致勝的秘籍!

本篇文章將帶大家了解網絡通信是如何進行的&#xff08;如包括網絡字節序&#xff0c;端口號&#xff0c;協議等&#xff09; &#xff1b;再對socket套接字進行介紹&#xff1b;以及一些udp-socket相關網絡通信接口的介紹及使用&#xff1b;最后進行對基于udp的網絡通信&#…

GIF圖像格式

你可能已經知道&#xff0c;GIF 是一種光柵圖像文件格式&#xff0c;它在不損失圖像質量的前提下提供壓縮功能&#xff0c;并且支持動畫和透明度。 GIF 是“Graphics Interchange Format&#xff08;圖形交換格式&#xff09;”的縮寫。由于其良好的兼容性以及在不同應用程序和…

D3.js的力導向圖使用入門筆記

D3.js是一個用于數據可視化的JavaScript庫,廣泛應用于Web端的數據交互式圖形展示 中文文檔&#xff1a;入門 | D3 中文網 一、D3.js核心特點 1、核心思想 將數據綁定到DOM元素&#xff0c;通過數據動態生成/修改可視化圖形。 2、應用場景 交互式圖表&#xff1a;如動態條…

Zookeeper的分布式事務與原子性:深入解析與實踐指南

引言在分布式系統架構中&#xff0c;事務管理和原子性保證一直是極具挑戰性的核心問題。作為分布式協調服務的標桿&#xff0c;Apache Zookeeper提供了一套獨特而強大的機制來處理分布式環境下的原子操作。本文將深入探討Zookeeper如何實現分布式事務的原子性保證&#xff0c;分…

Lua(迭代器)

Lua 迭代器基礎概念Lua 迭代器是一種允許遍歷集合&#xff08;如數組、表&#xff09;元素的機制。迭代器通常由兩個部分組成&#xff1a;迭代函數和狀態控制變量。每次調用迭代函數會返回集合中的下一個元素。泛型 for 循環Lua 提供了泛型 for 循環來簡化迭代器的使用。語法如…

發布 VS Code 擴展的流程:以顏色主題為例

發布 VS Code 擴展的流程&#xff1a;以顏色主題為例 引言&#xff1a;您的 VS Code 擴展在市場中的旅程 Visual Studio Code (VS Code) 的強大擴展性是其廣受歡迎的核心原因之一&#xff0c;它允許開發者通過添加語言支持、調試器和各種開發工具來定制和增強其集成開發環境&…

C++ 多線程(一)

C 多線程&#xff08;一&#xff09;1.std中的thread API 介紹開啟一個線程獲取線程信息API交換兩個線程2.向線程里傳遞參數的方法第一種方式&#xff08;在創建線程的構造函數后攜帶參數&#xff09;第二種方式&#xff08;Lambda&#xff09;第三種方式&#xff08;成員函數&…

自動駕駛訓練-tub詳解

在 Donkeycar 的環境里&#xff0c;“tub” 是一個很關鍵的術語&#xff0c;它代表的是存儲訓練數據的目錄。這些數據主要來源于自動駕駛模型訓練期間收集的圖像和控制指令。 Tub 的構成 一個標準的 tub 目錄包含以下兩類文件&#xff1a; JSON 記錄文件&#xff1a;其命名格式…

CVPR多模態破題密鑰:跨模對齊,信息串供

關注gongzhonghao【CVPR頂會精選】當今數字化時代&#xff0c;多模態技術正迅速改變我們與信息互動的方式。多模態被定義為在特定語境中多種符號資源的共存與協同。這種技術通過整合不同模態的數據&#xff0c;如文本、圖像、音頻等&#xff0c;為用戶提供更豐富、更自然的交互…

小米路由器3G R3G 刷入Breed和OpenWrt 插入可共享網絡的usb隨身WiFi

小米 R3G 參數&#xff08;以下加黑加粗需要特別關注&#xff0c;灰常詳細&#xff09; 市面上有R3G和R3Gv2兩種型號, 注意區分, 后者是縮水版, 沒有USB口. 內存只有128M, Flash只有16M. 這里描述的只適用于R3G. 就是這樣 操作步驟開始&#xff0c;&#xff0c;注&#xff1a…

SpringBoot實現Serverless:手擼一個本地函數計算引擎

前言 最近突然冒出一個想法&#xff1a;能不能用SpringBoot自己實現一個類似AWS Lambda或阿里云函數計算的執行引擎&#xff1f; 說干就干&#xff0c;于是從零開始設計了一套基于SpringBoot的Serverless執行框架。 這套框架支持函數動態加載、按需執行、資源隔離&#xff0c;甚…

Java排序算法之<插入排序>

目錄 1、插入排序 2、流程介紹 3、java實現 4、性能介紹 前言 在 Java 中&#xff0c; 冒泡排序&#xff08;Bubble Sort&#xff09; 和 選擇排序&#xff08;Selection Sort&#xff09; 之后&#xff0c;下一個性能更好的排序算法通常是 插入排序&#xff08;Insertion …

《計算機網絡》實驗報告七 HTTP協議分析與測量

目 錄 1、實驗目的 2、實驗環境 3、實驗內容 4、實驗結果與分析 4.1 使用tcpdump命令抓包 4.2 HTTP字段分析 5、實驗小結 5.1 問題與解決辦法&#xff1a; 5.2 心得體會&#xff1a; 1、實驗目的 1、了解HTTP協議及其報文結構 2、了解HTTP操作過程&#xff1a;TCP三次…

面試實戰,問題十三,Redis在Java項目中的作用及使用場景詳解,怎么回答

Redis在Java項目中的作用及使用場景詳解&#xff08;面試要點&#xff09; 一、Redis的核心作用高性能緩存層 原理&#xff1a;Redis基于內存操作&#xff08;引用[2]&#xff09;&#xff0c;采用單線程模型避免線程切換開銷&#xff0c;配合IO多路復用實現高吞吐&#xff08;…

Python - 100天從新手到大師 - Day6

引言 這里主要是依托于 jackfrued 倉庫 Python-100-Days 進行學習&#xff0c;記錄自己的學習過程和心得體會。 1 文件讀寫和異常處理 實際開發中常常會遇到對數據進行持久化的場景&#xff0c;所謂持久化是指將數據從無法長久保存數據的存儲介質&#xff08;通常是內存&…

IP--MGER綜合實驗報告

一、實驗目的完成網絡設備&#xff08;路由器 R1-R5、PC1-PC4&#xff09;的 IP 地址規劃與配置&#xff0c;確保接口通信基礎正常。配置鏈路層協議及認證&#xff1a;R1 與 R5 采用 PPP 的 PAP 認證&#xff08;R5 為主認證方&#xff09;&#xff0c;R2 與 R5 采用 PPP 的 CH…