Trong khóa học lập trình hướng đối tượng của chúng tôi, chúng tôi đã thảo luận một chủ đề mà tôi không nghĩ rằng anh ấy đã từng đặt tên, tôi đã cố gắng tìm ra tên của nó là tìm một cách thích hợp để giải quyết chúng, nhưng tôi không có may mắn.Cơ thể lặp này lặp lại bao nhiêu lần?
Đây không phải là bài tập về nhà, mà là một câu hỏi để làm rõ về quy trình giải quyết vấn đề này.
for I = (N + 2) downto -1
for J = (I - 1) to (N + 4)
// Code is run here
Câu hỏi là "Đã bao nhiêu lần // Code is run here
chạy?"
Dưới đây là những gì tôi đã cố gắng để giải quyết này:
1) I = (N + 2)
, J = [(N + 2) - 1]
từ này (và những gì tôi nhớ) bạn sử dụng b - a - 1
để giải quyết cho số lần thực hiện, mang đến cho chúng ta X = [(N + 2) - 1] - (N + 2) - 1
có thể được đơn giản hóa để X = -2
2) I = -1
, J =
((-1) - 1) and
X = ((-1) - 1) - (-1) - 1 which simplifies to
X = -2`
tôi m bị mất khi xử lý vòng lặp thứ hai for
và cách kết thúc sự cố. Tôi biết rằng chúng tôi phải kết thúc bằng một câu trả lời chẳng hạn như r(r + 1)/2
Tôi chỉ muốn nói rằng tôi đã cố gắng tìm tên loại kỹ thuật này, nhưng ông ấy gọi đơn giản là "Tính toán mã" t trả lại bất kỳ tìm kiếm nào liên quan đến chủ đề này.
Cảm ơn bạn
EDIT: Khóa học này bằng Java, vì vậy đó là lý do tôi sử dụng thẻ Java cho câu hỏi này, nếu có ai đó tò mò.
EDIT2: Để làm rõ, đây là trên viết thi, vì vậy chúng tôi dự kiến sẽ thực hiện điều này thông qua bút và giấy, tôi muốn một lời giải thích làm thế nào để giải quyết vấn đề này như tôi đã cố gắng nó nhiều lần và vẫn kết thúc với câu trả lời sai.
là 'ranh giới to' bao gồm? – luk2302
Bạn có thể không chỉ làm cách tiếp cận vật lý cổ điển để nhận được câu trả lời và làm việc ngược? Chỉ cần đặt một truy cập trong vòng I, sau đó cô lập vòng lặp J và làm như vậy. Hy vọng rằng một truy cập trong vòng lặp IJ sẽ cung cấp cho bạn truy cập trong J * truy cập trong tôi. – user2589273
Bất kỳ cơ hội nào, ý của bạn là "Ký hiệu O"? – gian1200