Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

In số 1 đến 100 không dùng vòng lặp trong C

Có thể in 1-100 không dùng loop bằng: đệ quy (recursion), goto, hoặc hàm ngoài main().

Ví dụ: Đệ quy

#include <stdio.h>

void printNumbers(int val) {
    if (val <= 100) {
        printf("%d\t", val);
        printNumbers(val + 1);
    }
}

int main() {
    printNumbers(1);
    return 0;
}

Kết quả

1	2	3	4	5	...	100

Giải thích: Hàm printNumbers in giá trị hiện tại, sau đó gọi chính nó với val+1. Điều kiện dừng: val > 100.

Các cách khác

  • Goto: Dùng label và goto (không khuyến khích).
  • Template metaprogramming (C++): Tính toán tại compile-time.
  • std::iota + algorithm (C++): std::iota(v.begin(), v.end(), 1); rồi in.
Lưu ý: Đệ quy 100 cấp an toàn (stack đủ lớn). Nhưng đệ quy sâu (nghìn cấp) sẽ gây stack overflow. Cách này chủ yếu để hiểu tư duy đệ quy.