C++ 숫자


보통 숫자를 사용해야 할 때는 int, short, long, float, double 등과 같은 기본 데이터 유형을 사용합니다. 숫자에 대한 이러한 데이터 유형, 가능한 값 및 값 범위는 C++ 데이터 유형 장에서 논의되었습니다.

C++ 숫자 정의

이전 장에서 이미 다양한 사례에서 숫자를 정의했습니다. 다음은 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;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

short  s :10
int    i :1000
long   l :1000000
float  f :230.47
double d :30949.4

C++ 수학 연산

C++에서는 다양한 함수를 만들 수 있을 뿐만 아니라 에는 사용할 수 있는 다양하고 유용한 기능도 포함되어 있습니다. 이러한 함수는 표준 C 및 C++ 라이브러리로 작성되었으며 내장함수라고 합니다. 프로그램에서 이러한 함수를 참조할 수 있습니다.

C++에는 다양한 숫자에 대한 연산을 수행할 수 있는 다양한 수학 함수가 내장되어 있습니다. 다음 표에는 C++에 내장된 몇 가지 유용한 수학 함수가 나열되어 있습니다.

이러한 기능을 활용하려면 수학 헤더 파일 <cmath>을 참조해야 합니다.

일련번호함수 및 설명
1double cos(double);
이 함수는 라디안 각도(이중 유형)의 코사인을 반환합니다.
2double sin(double);
이 함수는 각도의 사인을 라디안 단위로 반환합니다(이중 유형).
3double tan(double);
이 함수는 각도의 탄젠트를 라디안 단위로 반환합니다(이중 유형).
4double log(double);
이 함수는 매개변수의 자연 로그를 반환합니다.
5double pow(double, double);
첫 번째 매개변수가 x이고 두 번째 매개변수가 y라고 가정하면 함수는 x의 y제곱을 반환합니다.
6double hypot(double, double);
이 함수는 두 매개변수의 제곱합의 제곱근을 반환합니다. 즉, 매개변수가 두 개의 직각 변인 경우입니다. 직각 삼각형의 경우 이 함수는 빗변 길이를 반환합니다.
7double sqrt(double);
이 함수는 인수의 제곱근을 반환합니다.
8int abs(int);
이 함수는 정수의 절대값을 반환합니다.
9double fabs(double);
이 함수는 모든 십진수의 절대값을 반환합니다.
10double floor(double);
이 함수는 전달된 인수보다 작거나 같은 가장 큰 정수를 반환합니다.

다음은 수학 연산의 간단한 예입니다.

#include <iostream>
#include <cmath>
using namespace std;
 
int main ()
{
   // 数字定义
   short  s = 10;
   int    i = -1000;
   long   l = 100000;
   float  f = 230.47;
   double d = 200.374;

   // 数学运算
   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;
}

위 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

sign(d) :-0.634939
abs(i)  :1000
floor(d) :200
sqrt(f) :15.1812
pow( d, 2 ) :40149.7

C++ 난수

많은 경우 난수를 생성해야 합니다. 난수 생성기와 관련하여 두 가지 관련 기능이 있습니다. 하나는 의사 난수를 반환하는 rand()입니다. srand() 함수는 난수를 생성하기 전에 호출되어야 합니다.

다음은 난수 생성의 간단한 예입니다. 예제에서는 time() 함수를 사용하여 시스템 시간의 초를 가져오고 rand() 함수를 호출하여 난수를 생성합니다.

#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