开始使用免费开始使用

使用 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

这里,您将完成一个使用巴比伦方法计算平方根的函数定义。(在实际代码中,建议直接使用 sqrt(),它采用更快的现代算法。)

本练习是课程的一部分

用 Rcpp 优化 R 代码

查看课程

练习说明

  • 初始化一个局部 double 变量 x 为 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)
*/
编辑并运行代码