- ìˆ˜ì •. 한가지 오류를 바로 ìž¡ì�Œ. "/10" 으로 나눔 ì—°ì‚°.
쿡... �거운 공통 수학 시간�군.
p를 1834567891242341235423542542451234145678551475585744로 ê°€ì •
k = log(n root string:p)
// p를 string으로 받�
// p를 string으로 받�
= 1/n * log(string:p)
// nì�„ 밖으로 낸다.= 1/n * ( log( 10ì�˜ (string:pì�˜ ìž�릿수)승) + log((x) = string:pì�˜ 맨 첫숫ìž�와 ë‘�번째 숫ìž�를 ì�¼ì�˜ìž�리로 한 것ì�„ 반올림. -> ì˜ˆì œì—�서 1.8) )
// 반올림ì�€ ceil, floor 함수로 효율성 있게 구성한다.// 여기서 문ìž�를 숫ìž�로 ë³€ê²½í•˜ê³ log10 함수를 사용한다.
// 반올림 하지 ì•Šê³ ë°”ë¡œ log10ì�„ 취해ë�„ ë�¨.
= 1/n * ( �릿수 + log(x) )
= 계산 �.
// 반올림ì�„ í•˜ê³ ì •ìˆ˜ë¡œ ìº�스팅한다.= 계산 ë��.
ì •ìˆ˜í˜•ì�´ê¸° 때문ì—� ì�´ê²ƒì�€ 맞아떨어ì§�.
ì„¤ë ¹ 실수형ì�´ëž˜ë�„ 로그로 ì�¸í•´ 근사값ì—� ë§žì•„ 떨어ì§�. (반올림 하면ë�¨)
ì„¤ë ¹ 실수형ì�´ëž˜ë�„ 로그로 ì�¸í•´ 근사값ì—� ë§žì•„ 떨어ì§�. (반올림 하면ë�¨)
~cpp
// 개략 ì �ì�¸ 코딩으로 컴파ì�¼ëŸ¬ê°€ 없어 ì—�러를 잡지 못했ì�Œ.
// 수학 함수는 func(). n, p를 받아들ì�´ê³ ì •ìˆ˜ k를 반환함.
// 6시 44분 코딩 시작 // 6시 57분 �.
#include <stdio.h>
#include <string.h>
#include <math.h>
int func(char *p, int n){
double ret_buf;
int ret;
int t = strlen(p)-1;
double buf;
char p_buf[3];
sscanf(p_buf, "%2c\0", p); // 앞� � �리만 취한다.
buf = log10((double)atof(p_buf)/10); // 첫 ��리를 log취한다.
ret_buf = (buf+t)/n;
if(ret_buf >= (ceil(ret_buf)+floor(ret_buf))/2) // 반올림. 올림+내림/2보다 �거나 같� 경우
ret_buf = (int)ret_buf + 1; // 올림.
ret = (int)ret_buf; // 내림ì�¼ê²½ìš° 여기서 ì €ì ˆë¡œ 내린다.
return ret;
}










