/* * Дана последовательность действительных чисел a0, ... * Создать приложение для поиска суммы квадратов sum(a[i]^2). */ #include #include #include #include const unsigned int arrSize = 10000000; //const unsigned int arrSize = 500000000; //const unsigned int arrSize = 900000000; //const unsigned int arrSize = 700000000; double *A; //последовательность чисел a0... double func(double A[]) { //вычисление суммы квадратов double sum = 0; //for(int j = 0; j < 10; j++) { for(int i = 0; i < arrSize; i++) { sum += A[i]*A[i]; } //} return sum; } int main() { // заполнение массива A A = new double[arrSize]; if(A == nullptr) { std::cout << "Incorrect size of vector = " << arrSize << "\n"; return 1; } for(int i = 0; i < arrSize; ++i) { A[i] = double(i); } clock_t start_time = clock(); // начальное время // Последовательное вычисление суммы double sum = func(A); clock_t end_time = clock(); // конечное время //вывод результата std::cout << "Сумма квадратов = " << sum << "\n" ; std::cout << "Сумма квадратов = " << std::setprecision(20) << sum << "\n" ; std::cout << "Сумма квадратов = " << std::scientific << std::setprecision(std::numeric_limits::digits10 + 1) << sum << "\n" ; std::cout << "Время счета = " << end_time - start_time << "\n"; delete[] A; return 0; }