(10 ^ 7)! 의 자리수를 어떻게 구할 수 있을까?

- log를 이용하면 자리수를 쉽게 구할 수 있다.

log1010 = 1, 

log10100 = 2,

log101000 = 3

...

이렇게 log는 자리수를 나타 낼 수 있다.

이를 이용하여

팩토리얼의 자리수를 구한다면,

10! 은 1*2*3*4*5*6*7*8*9*10이다.

1*2 = 2;

2*3 = 6

6*4 = 24

24*5 = 120

120 * 6 = 720

720 * 7 = 5040

5040 * 8 = 40320

40320 * 9 = 362880

362880 * 10 = 3628800

이렇게 7자리 수가 된다.

하지만 이렇게 구한다면 10^7 팩토리얼의 자리수인 65657060 자리수를 표현해야한다.

long long형을 사용하여도 9223372036854775807i64(8바이트,64비트)까지 밖에 표현 못한다.

이때 log를 이용하여 팩토리얼 계산시 자리수를 double 형으로 계산한다면 10^7의 값인 천만 팩토리얼의 자리수도 연산가능하다.

(정확히 개념이 이해가 되질 않지만, 일단 적어본다...ㅜㅜ)

Posted by *me
:
현재 날짜나 시간등이 필요한 경우가 많은데, 
time.h를 이용하면 현재 DATE정보를 받아올 수 있다.


간단한 소스를 검색해서 구현해보았지만, 대부분 그렇지만 시간에 관한 구조체나 함수에 대해 자세히는 이해가 되질 않는다. 그냥 일단 이렇게 쓰는걸로...ㅜㅜ ctime어쩌고.. 있던데.. 어려움..

'이론 > C/C++' 카테고리의 다른 글

함수포인터 활용  (0) 2016.10.27
간단한 함수 포인터 예제  (0) 2015.06.16
C++ 문자열 너비포함 출력  (0) 2015.03.08
C++에서 2차원 배열 동적할당, 반납  (0) 2015.01.10
Posted by *me
:

C++ 에서도 (C언어의 %5d였나?) 문자열 출력시 너비를 포함하여 출력할 수 있다.

즉,  "   a","abc"이거처럼 열을 맞춰서 출력한다고 해야할까..


ios에서 cout.width()를 이용하여 가능한데,

cout.width(폭의 크기), cout.file('문자') 로 사용한다.

예제를 작성해 보았다.




결과창:


'이론 > C/C++' 카테고리의 다른 글

함수포인터 활용  (0) 2016.10.27
간단한 함수 포인터 예제  (0) 2015.06.16
C/C++ 시간 정보 얻기  (0) 2015.03.08
C++에서 2차원 배열 동적할당, 반납  (0) 2015.01.10
Posted by *me
: