시작하기무료로 시작하기

for 루프로 제곱근 계산하기

R과 마찬가지로, C++의 for 루프는 지정한 횟수만큼 같은 코드를 실행하며 각 반복에서 인덱스 값만 바뀝니다. 다만 for 루프의 문법은 R보다 조금 더 복잡해요.

for(int i = 0, i < n, i++) {
  // Do something
}
  • int i = 0은 인덱스를 정수(가장 흔한 경우)로 선언하고, 첫 번째 반복에서 값을 0으로 설정해요.
  • i < n은 반복 조건을 설정합니다. in에 도달하면 이 조건이 거짓이 되어 루프가 멈춰요.
  • i++는 각 반복에서 i 값을 1씩 증가시키라는 뜻이에요.

이제 Babylonian method를 사용해 제곱근을 계산하는 함수 정의를 완성해 볼 거예요. (실제 코드에서는 더 빠른 현대 알고리즘을 사용하는 sqrt()를 쓰는 편이 좋아요.)

이 연습은 강의의 일부입니다

Rcpp로 R 코드 최적화하기

강의 보기

연습 안내

  • 지역 변수 double x를 1로 초기화하세요.
  • for 루프를 작성하세요.
    • 정수 i0으로 초기화하세요.
    • 반복 조건을 in보다 작은 것으로 설정하세요.
    • 매 반복마다 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)
*/
코드 편집 및 실행