19/06/2023

19/06/2023
19/06/2023
Dưới đây là code C++ để giải quyết bài toán của bạn:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
long long N;
cin >> N;
double S = 0;
for (int i = 1; i <= N; i++) {
if (i % 2 == 0) {
S += (double)i / (2 * N);
} else {
S += i;
}
}
cout << fixed << setprecision(3) << S << endl;
return 0;
}
Code trên sẽ nhập số nguyên dương N, tính giá trị biểu thức theo yêu cầu và in ra kết quả làm tròn đến 3 chữ số thập phân. Bạn có thể thử chạy code trên với ví dụ đầu vào là 5 và kết quả đầu ra sẽ là 0.500.
19/06/2023
Đây là cách giải khác tối ưu hơn so với Timi. Bạn có thể giải quyết bài toán này bằng cách sử dụng công thức tính tổng của một cấp số cộng để tính tổng các số từ 1 tới N và từ 2 tới 2N với công sai là 2. Dưới đây là một ví dụ về cách giải quyết bài toán này bằng C++:
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
long long N;
cin >> N;
double S = (double)(N * (N + 1) / 2 + N * (N + 1)) / (2 * N);
cout << fixed << setprecision(3) << S << endl;
return 0;
}
Trong đó, `N` là số nguyên dương được nhập vào từ bàn phím. Biến `S` được tính bằng công thức `(N * (N + 1) / 2 + N * (N + 1)) / (2 * N)`, đây là tổng của hai cấp số cộng chia cho `2 * N`. Sau khi tính được giá trị của biểu thức, bạn in ra kết quả với độ chính xác là 3 chữ số thập phân.
19/06/2023
#include <iostream>
#include <iomanip> // Để sử dụng setprecision()
double calculateExpression(int N) {
double sum = 0;
for (int i = 1; i <= N / 2; i++) {
sum += i;
}
for (int i = 1; i <= N; i += 2) {
sum += 2 * i;
}
return sum;
}
int main() {
int N;
std::cout << "Nhap so nguyen duong N: ";
std::cin >> N;
double result = calculateExpression(N);
std::cout << "Output: " << std::fixed << std::setprecision(3) << result << std::endl;
return 0;
}
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời