1. Bài tập tính S(x,n) = x + x^2 + x^3 +…+ x^n

Bài tập cơ bản này ta có thể có nhiều hướng giải quyết khác nhau, như sử dụng vòng lặp for, sử dụng vòng lặp while, …

Đầu vào sẽ là một biến nguyên x và biến nguyên n, yêu cầu của bài toán là tính tổng các phần tử từ x đến x^n.

2. Lời giải

Để giải được bài tập tính S(x,n) = x + x^2 + x^3 +…+ x^n  bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản và cách sử dụng vòng lặp.

Các bước thực hiện bài toán như sau:

Bước 1: Phân tính bài toán S(x,n) = x + x^2 + x^3 +…+ x^n ta thấy nó có dạng S(x,n) = x + x*x + x*x*x +…+ x*x*x…*x trong đó số lần x tăng đần đối với mỗi phần tử từ 1 đến n.

Bước 2: Tạo một biến int sum = 0 để thể hiện giá trị tổng, int lt = 1 để tính lũy thừa.

Bước 3: Ta sẽ sử dụng vòng for với một biến int i = 1 , điều kiện dừng khi nó bằng n và mỗi lần i tăng lên 1.

Bước 4: Trong vòng lặp ta cho biến lt mỗi lần lặp sẽ tăng lên i lần còn biến sum sẽ tăng lên lt.

Chương trình giải bài tập S(x,n) = x + x^2 + x^3 +…+ x^n như sau :

#include <stdio.h>
int main(){
    // khai bao so nguyen x,n
    int x,n; 
    // khai bao sum
    int sum = 0;
    // khai bao lt 
    int lt = 1;
    // nhap du lieu gan vao bien x
    printf("nhap x = ");
    scanf("%d", &x);
    // nhap du lieu gan vao bien n 
    printf("nhap n = ");
    scanf("%d", &n);
    //vong lap for bat dau tu i = 1 và ket thuc khi i = n, moi lan lap i tang len 1
    for(int i = 1; i <= n; i++){
        // moi lan lap gt tang len x lan
        lt *= x;  
        // moi lan thuc hien vong lap bien sum se tan lên lt
        sum += lt;
    }
    // in ket qua ra man hinh    
    printf("S(%d,%d) = %d",x, n,sum);
}

Ví dụ tôi nhập x=3 và n=5

Kết quả:

nhap x = 3
nhap n = 5
S(3,5) = 363

3. Tổng kết

Để thực hiện giải bài tập tính S(x,n) = x + x^2 + x^3 +…+ x^n bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C và các phép toán học cơ bản.

Bài tập trên có thể giải bằng các khác là sử dụng vòng lặp while.

Chương trình như sau:

#include <stdio.h>
int main() {
    int x,n;// khai bao so nguyen x,n
    // nhap du lieu gan vao bien x 
    printf("nhap x = ");
    scanf("%d",&x);
    // nhap du lieu gan vao bien n 
    printf("nhap n = ");
    scanf("%d",&n);
     // khai bao sum
    int sum = 0;
     // khai bao lt
    int lt = 1;
    int i = 1;//bat dau tu i = 1
    while(i <= n){//dieu kien ket thuc vong lap i <= n 
        lt *= x;//moi lan lap gt tang x lan
        //moi lan lap sum tang len lt 
        sum += lt;
        i++;//moi lan lap i tang len 1
    }
    printf("S(%d,%d) = %d",x,n,sum);
}

Ví dụ tôi nhập x=7 và n=9

Kết quả:

nhap x = 7
nhap n = 9
S(7,9) = 47079207