
程序 exp1-1.cpp 的结构如图 1.1 所示,addl(遂个累加)和 add2(高斯法)兩数采用两种解法计算 1+2+…+n,AddTimel 和 AddTime2 分别调用它们求 1+2+…十n,并统计求解时间。

关注引自免费微信小程序:皆我百晓生
在C语言中,为了实现实验题1的要求,你需要编写一个程序expl-1.cpp。下面是一个可能的完整代码示例:
#include <iostream>
#include <ctime> // 引入time.h头文件,以便使用clock_t和clock()函数
// 逐个累加求和
long long add1(int n) {
long long sum = 0;
for (int i = 1; i <= n; ++i) {
sum += i;
}
return sum;
}
// 高斯法求和
long long add2(int n) {
return n * (n + 1) / 2;
}
// 计算并输出某个函数执行时间
void calculateAndPrintTime(std::string method, int n, long long (*func)(int)) {
clock_t t = clock();
long long result = func(n);
t = clock() - t;
float timeInSeconds = static_cast<float>(t) / CLOCKS_PER_SEC;
std::cout << "方法: " << method << ", 求解结果为: " << result << ", 用时: " << timeInSeconds << "秒" << std::endl;
}
int main() {
int n;
std::cout << "请输入一个正整数n: ";
std::cin >> n;
calculateAndPrintTime("逐个累加", n, add1);
calculateAndPrintTime("高斯法", n, add2);
return 0;
}
这个代码首先定义了两个函数add1和add2,分别采用逐个累加和高斯法计算1到n的连续整数之和。然后定义了一个通用函数calculateAndPrintTime用于计算任意给定函数在求解1到n之和时所消耗的时间,并打印结果。
在main函数中,用户输入一个正整数n,然后分别调用calculateAndPrintTime函数对两种方法进行计时测试。最终输出每种方法的结果及其对应的执行时间。