for 루프로 제곱근 계산하기
R과 마찬가지로, C++의 for 루프는 지정한 횟수만큼 같은 코드를 실행하며 각 반복에서 인덱스 값만 바뀝니다. 다만 for 루프의 문법은 R보다 조금 더 복잡해요.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0은 인덱스를 정수(가장 흔한 경우)로 선언하고, 첫 번째 반복에서 값을0으로 설정해요.i < n은 반복 조건을 설정합니다.i가n에 도달하면 이 조건이 거짓이 되어 루프가 멈춰요.i++는 각 반복에서i값을1씩 증가시키라는 뜻이에요.
이제 Babylonian method를 사용해 제곱근을 계산하는 함수 정의를 완성해 볼 거예요. (실제 코드에서는 더 빠른 현대 알고리즘을 사용하는 sqrt()를 쓰는 편이 좋아요.)

이 연습은 강의의 일부입니다
Rcpp로 R 코드 최적화하기
연습 안내
- 지역 변수
doublex를 1로 초기화하세요. for루프를 작성하세요.- 정수
i를0으로 초기화하세요. - 반복 조건을
i가n보다 작은 것으로 설정하세요. - 매 반복마다
i를 1씩 증가시키세요.
- 정수
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
#include
using namespace Rcpp;
// [[Rcpp::export]]
double sqrt_approx(double value, int n) {
// Initialize x to be one
double x = ___;
// Specify the for loop
___(int i = ___; ___; ___) {
x = (x + value / x) / 2.0;
}
return x;
}
/*** R
sqrt_approx(2, 10)
*/