前十个自然数的平方和与平方和之差
C++ Difference between the sum of the squares of the first ten natural numbers and the square of the sum
我编写了一段代码,计算并输出前十个自然数的平方和与平方和之间的差。
问题是函数squareOfSum()。函数应该返回3025,但它总是返回3024。即使我试着把100放进括号里,我得到25502499(25502500是正确的)。不管我把什么数字放进括号里,我总是得到同样的问题。我做错了什么?
这是我输出的屏幕截图。
#include <iostream>
#include <cmath>
using namespace std;
int sumOfSquares(int limit);
int squareOfSum(int limit);
int main()
{
cout << sumOfSquares(10) << endl;
cout << squareOfSum(10) << endl;
cout << squareOfSum(10) - sumOfSquares(10) << endl;
}
int sumOfSquares(int limit)
{
int sum = 0;
for(int i = 1; i<=limit; i++)
{
sum +=pow(i,2);
}
return sum;
}
int squareOfSum(int limit)
{
int sum = 0, square = 0;
for(int i = 1; i<=limit; i++)
{
sum +=i;
}
square = pow(sum,2);
return square;
}
注意,pow
是一个处理浮点数的函数。在隐式转换为int时,优化可能导致舍入错误或截断。将pow(i, 2)
替换为i*i
,您将得到纯整数运算,从而得到精确的结果。
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
int main()
{
int higher_limit = 100;
int SquaresOfSum = 0;
int SumOfSquares = 0,count=0;
for(int i=1;i<=higher_limit;i++){
count += i;
SumOfSquares += pow(i,2);
}
SquaresOfSum = pow(count,2);
cout<<SquaresOfSum-SumOfSquares;
}
使用Javascript
const sumSquareDifference = (n) => {
const numbers = [...Array(n + 1).keys()];
const sumOfSquares = numbers.reduce((accumulator, number) => accumulator + (number ** 2));
const squareOfSum = numbers.reduce((accumulator, number) => accumulator + number) ** 2;
return squareOfSum - sumOfSquares;
}
console.log(sumSquareDifference(10));
相关文章:
- 在 c++ 中从文本文件中读取两个十六进制值
- 将40个字节长的数据框从十六进制转换为二进制,然后转换为十进制
- 每秒需要发送十个周期的数据(每秒十个周期)
- 在 c++ 中使用字符串流将 4 个字符的十六进制字符串转换为有符号的短字符串
- 两个派生类(十六进制 二进制)的虚拟功能
- 甚至是文件中的每个第十个数字,甚至是奇数
- 如何将多个十六进制值连接到一个值
- 我正在制作一个二十一点程序。我目前有两个问题
- 如何添加两个或多个字符的十六进制值
- 将十六进制颜色空间划分为多个仓
- 超过两个数字十六进制
- C 将向量转换为2个十六进制,然后将其存储在字符串中
- 如何组织数十个类似的试用块
- 为什么第二个语句是打印十六进制值
- 将响应限制为每行十个五边形数
- 前十个自然数的平方和与平方和之差
- 将数十个非成员函数转换为方法
- 如何返回一个包含十个字符串的数组的引用
- wsprintfW打印只有几十个
- 为什么在函数指针或返回函数指针的函数编译前放上几十个*呢?