Chạy ❯
Nhận trang web của
riêng
bạn
×
Thay đổi định hướng
Thay đổi chủ đề, Tối/Sáng
Đi tới Không gian
Python
C
Java
def F(n): if memo[n] != Không: # Đã tính return memo[n] else: # Cần tính toán print('Computing F('+str(n)+')') if n <= 1 : memo[n] = n else: memo[n] = F(n - 1) + F(n - 2) return memo[n] memo = [Không có]*7 print('F(6) = ',F (6)) print('memo = ',memo) #Python
#include <stdio.h> #include <stdlib.h> int memo[7]; char được tính [7] = {0}; // Theo dõi xem giá trị đã được tính chưa int F(int n) { if (computed[n]) { // Đã được tính return memo[n]; } else { // Cần tính toán printf("Tính F(%d)\n", n); if (n <= 1) { memo[n] = n; được tính [n] = 1; // Đánh dấu là đã tính toán } else { memo[n] = F(n - 1) + F(n - 2); được tính [n] = 1; // Đánh dấu là đã tính toán } return memo[n]; } } int main() { printf("F(6) = %d\n", F(6)); printf("ghi nhớ = ["); for (int i = 0; i < 7; i++) { if (i > 0) { printf(", "); } if (computed[i]) { printf("%d", memo[i]); } else { printf("Không"); } } printf("]\n"); trả về 0; } //C
public class Main { Private static Integer[] memo = new Integer[7]; // Sử dụng Integer để cho phép giá trị null public static void main(String[] args) { System.out.println("F(6) = " + F(6)); System.out.print ("bản ghi nhớ = ["); for (int i = 0; i < memo.length; i++) { if (i != 0) { System.out.print(", "); } System.out.print(memo[i]); } System.out.println("]"); } public static int F(int n) { if (memo[n] != null) { // Đã tính return memo[n]; } else { // Cần tính toán System.out.println("Tính F(" + n + ")"); if (n <= 1) { memo[n] = n; } else { memo[n] = F(n - 1) + F(n - 2); } trả lại bản ghi nhớ[n]; } } } //Java
Kết quả Python:
Kết quả C:
Kết quả Java:
Tính F(6)
Tính F(5)
Tính F(4)
Tính F(3)
Tính F(2)
Tính F(1)
Tính toán F(0)
F(6) = 8
bản ghi nhớ = [0, 1, 1, 2, 3, 5, 8]
Tính F(6)
Tính F(5)
Tính F(4)
Tính F(3)
Tính F(2)
Tính F(1)
Tính toán F(0)
F(6) = 8
bản ghi nhớ = [0, 1, 1, 2, 3, 5, 8]
Tính F(6)
Tính F(5)
Tính F(4)
Tính F(3)
Tính F(2)
Tính F(1)
Tính toán F(0)
F(6) = 8
bản ghi nhớ = [0, 1, 1, 2, 3, 5, 8]