Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 计算幂级数的数学结果不正确_C++ - Fatal编程技术网

C++ 计算幂级数的数学结果不正确

C++ 计算幂级数的数学结果不正确,c++,C++,它从2中减去一些Ks 该规则在数学上是正确的,并且没有语法错误 这是在循环中声明k的方式还是编译器错误 那么,这里出了什么问题?这里是不使用pow函数的for循环: 9 + 98 + 999 + 9998 + ... 这应该比使用pow更准确,因为整数和浮点之间没有转换 此外,您可能希望尝试使用0中的系列。。n-1 我认为最好的办法是创建您自己的幂函数,因为我以前使用pow时,它不是这样工作的。有点像这个 int power = 10; for (int i = 1; i < n-1;

它从2中减去一些Ks

该规则在数学上是正确的,并且没有语法错误

这是在循环中声明k的方式还是编译器错误

那么,这里出了什么问题?

这里是不使用pow函数的for循环:

9 + 98 + 999 + 9998 + ...
这应该比使用pow更准确,因为整数和浮点之间没有转换


此外,您可能希望尝试使用0中的系列。。n-1

我认为最好的办法是创建您自己的幂函数,因为我以前使用pow时,它不是这样工作的。有点像这个

int power = 10;
for (int i = 1; i < n-1; ++i)
{
  const int k = power - 1 ;
  cout << k;
  if(i < n)
  {
    cout<< " + " ;
  }
  sum += k;
  power *= 10;  // This is important.
}

预期的结果是什么?顺便说一句,pow函数返回浮点。从浮点转换为整数时可能会遇到舍入错误。rint是将浮点转换为整数的更好方法,因为它将舍入到最接近的整数,而不是截断小数部分。但比这更好的是编写自己的int-ipowint-base,int-exponent函数,它完全避免了浮点数学及其所有的gotchas。IMHO,更准确的版本是使用一个包含10次幂的临时变量。在每个循环中,将功率变量乘以10。比调用pow函数简单得多,效率也更高。那是我太偏袒了。道歉。我想说的是,问题的标题不包含任何信息。
int power = 10;
for (int i = 1; i < n-1; ++i)
{
  const int k = power - 1 ;
  cout << k;
  if(i < n)
  {
    cout<< " + " ;
  }
  sum += k;
  power *= 10;  // This is important.
}
int pow_num(int base_num, int exp_num) 
{

    int result = 1;

    for(int i = 0; exp_num > i; ++i)
    {
        result = result * base_num;
    }

    return (result); 
}