Editorial for C Bài 2.C2: Lũy thừa


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.

Submitting an official solution before solving the problem yourself is a bannable offence.

Author: buitrunghieu

Hướng dẫn

Với một bài có nhiều testcase như bài này, ta cần phải sử dụng vòng lặp để có thể thực hiện mỗi testcase cu thể. Ở cuối mỗi vòng lặp cho testcase thì ta đều phải xuống dòng bằng câu lệnh printf("\n").

Ở mỗi testcase bài này, một cách đơn giản nhất là khởi tạo một biến res biểu thị kết quả cuối cùng, sau đó sử dụng vòng lặp. Với mỗi vòng lặp ta sẽ nhân res với số \(a\) cho đến khi đủ \(b\) vòng. Vì dữ liệu luôn đảm bảo kết quả thu được nhỏ hơn \(10^9\) nên ta cũng có thể khai bảo biến res dưới dạng "int". Độ phức tạp thuật toán: \(O(b*q)\) với \(q\) là số testcase.

Code mẫu

#include <stdio.h>

int main() {
    int q;
    scanf("%d", &q);
    //Sử dụng vòng lặp để thực hiện mỗi truy vấn
    for(int i = 1; i <= q; i++){
        int a, b;
        scanf("%d%d", &a, &b);
        //Khởi tạo biến kết quả
        int result = 1;

        //Với mỗi một vòng, nhân biến kết quả cho ~a~. Kết thúc vòng lặp giá trị của biến
        //kết quả bằng a^b
        for(int i = 1; i <= b; i++){
            result *= a;
        }

        //in ra kết quả và xuống dòng cho testcase tiếp theo
        printf("%d\n", result);
    }
    return 0;
}

Đăng ký khóa học: https://www.facebook.com/clblaptrinhfullhouse

SĐT liên hệ: 0372229686

Youtube: CLB Lập Trình Full House

Fullhouse dev đồng hành trên từng dòng code


Comments

There are no comments at the moment.

Zalo