Đề bài
Tính tổng cấp số cộng, người dùng nhập số đầu, tổng số phần tử và công sai.
Giải pháp
Cấp số cộng (A.P.) là dãy số mà hiệu 2 số liên tiếp luôn bằng nhau. Tổng số phần tử ký hiệu là Tn.
Tổng A.P.: Sn = n/2 * (2a + (n-1)d)
Số hạng thứ n: Tn = a + (n-1)d
Thuật toán
Bước 1: Khai báo biến
Bước 2: Khởi tạo sum = 0
Bước 3: Nhập số đầu a
Bước 4: Nhập số phần tử n
Bước 5: Nhập công sai d
Bước 6: Tính sum = n * (2a + (n-1)d) / 2
Bước 7: Tính tn = a + (n-1)d
Bước 8: Vòng lặp for i = a; i <= tn; i += d
Nếu i != tn: printf("%d + ", i)
Ngược lại: printf("%d = %d", i, sum)
Bước 9: In dòng mới
Chương trình hoàn chỉnh
#include <stdio.h>
int main() {
int a, num, diff, tn, i;
int sum = 0;
printf("Nhập số đầu tiên của dãy: ");
scanf("%d", &a);
printf("Nhập tổng số phần tử: ");
scanf("%d", &num);
printf("Nhập công sai: ");
scanf("%d", &diff);
sum = (num * (2 * a + (num - 1) * diff)) / 2;
tn = a + (num - 1) * diff;
printf("\nTổng dãy A.P: ");
for(i = a; i <= tn; i = i + diff) {
if(i != tn)
printf("%d + ", i);
else
printf("%d = %d", i, sum);
}
printf("\n");
return 0;
}
Kết quả chạy
Nhập số đầu tiên: 3
Nhập tổng số phần tử: 10
Nhập công sai: 5
Tổng dãy A.P: 3 + 8 + 13 + 18 + 23 + 28 + 33 + 38 + 43 + 48 = 255
Nhập số đầu tiên: 2
Nhập tổng số phần tử: 15
Nhập công sai: 10
Tổng dãy A.P: 2 + 12 + 22 + 32 + 42 + 52 + 62 + 72 + 82 + 92 + 102 + 112 + 122 + 132 + 142 = 1080