Computer >> Máy Tính >  >> Lập trình >> C ++

Đếm cách để đến cầu thang thứ n bằng cách sử dụng bước 1, 2 hoặc 3 trong C ++

Chúng ta có tổng số bậc trong một cầu thang là n. Một người có thể lên đến tầng tiếp theo bằng cách bỏ qua 1, 2 hoặc 3 bước cùng một lúc. Mục tiêu là tìm ra số cách có thể đạt đến tầng tiếp theo bằng cách làm như vậy.

Chúng tôi sẽ sử dụng phương pháp đệ quy bằng cách lưu ý rằng để đạt được bất kỳ bước thứ i nào, một người phải nhảy từ bước thứ 1 (bỏ qua 1 bước), bước thứ 2 (bỏ qua 2 bước) hoặc bước thứ 3 ( bỏ qua 3 bước).

Hãy cùng hiểu với các ví dụ.

Đầu vào

 N =3 bước 

Đầu ra

 Tổng số cách để đến cầu thang thứ n bằng cách sử dụng bước 1, 2 hoặc 3 là:4 

Giải thích

 Có tổng cộng 3 bước Nhảy từ đầu (bỏ qua 3):3 bước Nhảy từ bước 1 (bỏ qua 2):1 + 2 Nhảy từ bước thứ 2 (bỏ qua 1):2 + 1 Không bỏ qua 1 + 1 + 1  

Đầu vào

 N =6 bước 

Đầu ra

 Số cách để đến cầu thang thứ n bằng cách sử dụng bước 1, 2 hoặc 3 là:24 

Giải thích

 Có tổng cộng 6 bước Cách:1 + 1 + 1 + 1 + 1 + 1, 2 + 1 + 1 + 1 + 1, 3 + 1 + 1 + 1, 3 + 1 + 2, 3 + 2 + 1 , 3 + 3, v.v. 

Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau

  • Chúng tôi đang thực hiện các bước số nguyên dưới dạng tổng số bước.

  • Hàmairs_step (int steps) lấy tất cả các bước làm đầu vào và trả về một số cách để đến tầng tiếp theo bằng cách thực hiện các bước nhảy hoặc không ..

  • Lấy số lượng biến ban đầu là 0 cho những cách như vậy.

  • Nếu số là 0 trả về 1.

  • Nếu số bước là 1 chỉ 1 chiều.

  • Nếu số bước là 2 thì chỉ có 2 cách (1 + 1 hoặc 2).

  • Làm theo các cách khác =lad_step (bước-3) + cầu thang_cấp (bước-2) + cầu thang_cấp (bước-1).

(phương thức đệ quy)

Ví dụ

 #include  using namespace std; intairs_step (int steps) {if (steps ==0) {return 1; } else if (các bước ==1) {return 1; } else if (bước ==2) {return 2; } else {quay lại cầu thang (bước - 3) + cầu thang_ bước (bước - 2) + cầu thang_bước (bước - 1); }} int main () {int step =5; cout <<"Số cách để đến cầu thang thứ n bằng cách sử dụng bước 1, 2 hoặc 3 là:" < 

Đầu ra

Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

 Số cách để đến cầu thang thứ n bằng cách sử dụng bước 1, 2 hoặc 3 là:13