gpt4 book ai didi

c++ - 给定两个偶数,求出它们之间所有偶数的平方和

转载 作者:行者123 更新时间:2023-12-02 10:13:07 25 4
gpt4 key购买 nike

我的任务是创建一个程序,该程序将提示用户输入两个偶数intsfinputsinput。之后,它应该输出从finputsinput(包括所有端点)的所有偶数的平方和。
这是我的代码,试图做到这一点:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
int finput, sinput;
int evens, d;

cout << "Please enter an EVEN number for your first input.(Make sure your first input is less than your second): " << endl;
cin >> finput;
cout << "Please enter an EVEN number for your second input.(Make sure your first input is less than your second): " << endl;
cin >> sinput;
cout << "Results: " << endl << "---------------------------------------------------" << endl;


if (finput % 2 == 0 && sinput % 2 == 0) {
if (finput < sinput) {
while (finput < sinput) {
evens = pow(2, finput);
finput += 2;
}
}
}
else {
cout << "These numbers are not even. try again.";
cout << endl << "Please enter two EVEN numbers. Your first input should be less than your second input (ex. 3 9; 50 100): " << endl;
while (finput % 2 != 0 && sinput % 2 != 0) {
cin >> finput >> sinput;
}
}
}
我相信我必须以某种方式存储循环的每个增量,以便可以将其添加到正在运行的总计中,但是我不知道如何执行此操作。有人可以告诉我如何完成任务吗?

最佳答案

您可以使用for-loop遍历从finputsinput的所有数字。确保每次增加2以获得从finputsinput的所有偶数。

int sum = 0;
for(int i = finput; i <= sinput; i += 2){
sum += i*i;
}
还有一种 O(1)方法来获取 finputsinput之间的所有偶数平方和。您可以使用 1^2 + 2^2 + ... + n^2 = (n)(n+1)(2n+1)/6公式实现此目的:
int sum = 4*(sinput/2)*(sinput/2+1)*(sinput+1)/6
- 4*(finput/2)*(finput/2+1)*(finput+1)/6 + finput*finput;

关于c++ - 给定两个偶数,求出它们之间所有偶数的平方和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62825770/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com