2009-02-08 28 views
5

Tôi đã có một bài kiểm tra cách đây vài ngày và hôm nay Người hướng dẫn đã cho chúng tôi câu trả lời chính của bài kiểm tra.Làm thế nào để tính toán số lượng hoạt động xảy ra trong quá trình thực hiện vòng lặp for?

Một trong những câu hỏi đã

for (j = 9; j >= 1; j--) 

Đếm số lần tác động

Kết quả là 20.

Bất cứ ai có giải thích thế nào anh nhận được 20 hoạt động từ đó?

+0

Câu trả lời hay nhưng không có nhiều nỗ lực từ Maya. Đây không phải là một diễn đàn bài tập về nhà. – duffymo

+0

Không có, nhưng tôi là một người trợ giúp cưỡng bức ;-). –

+0

@ spoon16: Đó là một chỉnh sửa vô ích nhất, IMHO. Nó làm cho tiêu đề khó đọc trên trang web này, khó tìm kiếm và thường chỉ là một tiêu đề xấu. Câu hỏi được lặp đi lặp lại đầy đủ bên trong nội dung văn bản. Không cần phải ép nó vào tiêu đề ngắn (!!!). –

Trả lời

14

20 hoạt động:

set j = 9 
check if j(9) >= 1 
set j to 8 
check if j(8) >= 1 
set j to 7 
check if j(7) >= 1 
set j to 6 
check if j(6) >= 1 
set j to 5 
check if j(5) >= 1 
set j to 4 
check if j(4) >= 1 
set j to 3 
check if j(3) >= 1 
set j to 2 
check if j(2) >= 1 
set j to 1 
check if j(1)>=1 
set j to 0 
check if j(0)>=1 

for (j = n; j> = 0; j--)

Ok, bạn bắt đầu với hai hoạt động:

  • (j = n)
  • kiểm tra (j> = 0).

Đối với tất cả n < 0 nó dừng ở đó.

Nếu n = 0, bạn nhận được một aditional:

  • j--
  • séc (j> = 0).

Đối với n = 1, bạn sẽ nhận được một bộ khác.

Vì vậy, số hoạt động là 2 cho n < 0 và 2n + 4 cho n> = 0.

Những thứ này không khó. Bạn chỉ cần suy nghĩ như một máy tính và cẩn thận lưu ý bất kỳ thay đổi nào đối với tiểu bang (tập hợp các biến).

+0

Thực ra, đây là một lời giải thích rất rõ ràng. :) – BobbyShaftoe

+0

điều này là tuyệt vời thanx rất nhiều bạn có thể explaine trong cùng một điều này cho (j = n; j> = 0; j--) cho (j = 1; j <10; j ++) –

+0

Hey Maya , bây giờ bạn đã được dạy làm thế nào để câu cá có lẽ đó là thời gian để thử bàn tay của bạn vào nó. Thực hiện theo các phương pháp và xem những gì bạn nhận được. – duffymo

3

Vâng, trong lần lặp đầu tiên, j được đặt thành 9. Sau đó, mỗi lần lặp cơ bản thực hiện cùng hai hướng dẫn:

  • đầu tiên, kiểm tra xem j >= 1, và
  • thứ hai, giảm giá trị j (j--).

Điều này được thực hiện chín lần (từ 9 bao gồm 0 bao gồm). Trong lần lặp lại cuối cùng, chúng tôi kiểm tra lại cho dù j >= 1 và vì điều này là sai, chúng tôi thoát khỏi vòng lặp. Do đó, chúng tôi nhận được 1 + 9 * 2 + 1 = 20 lần lặp.

0

Bạn đã viết giá trị nào? Chỉ tò mò thôi.

Hãy đếm chúng lại với nhau, maya:

for (j = 9; j >= 1; j--) 

một cho gán 9 đến j = 1; một so sánh giá trị hiện tại của j đến 1 cho mỗi lần lặp của vòng lặp = 10; một lần giảm j cho mỗi lần lặp của vòng lặp trừ vòng lặp cuối cùng = 9;

1 + 10 + 9 = 20 trong sách của tôi.

0

Bạn có 1 bài tập (j = 9). Hoạt động "j--" sẽ được chạy 9 lần; kiểm tra có điều kiện "j> = 1" sẽ được chạy 10 lần (mỗi lần lặp lại bạn đặt câu hỏi "là j> = 1"), lần cuối sẽ thất bại. Vì vậy, bạn có 1 + 9 + 10 = 20.

Người hướng dẫn của bạn rất, rất tệ nếu anh ấy có ý nghĩa như vậy là không đề nghị giúp đỡ. Đây là một trong những câu hỏi mà bạn có hoặc không. Người hướng dẫn nên giúp đỡ. :)

+0

Tôi muốn có thêm ngữ cảnh trước khi quyết định rằng người hướng dẫn là "có nghĩa" hoặc "xấu". – duffymo

+0

Vâng, đó không phải là sự phán xét tuyệt đối. Nếu bạn sử dụng logic, tôi đã sử dụng "điều kiện" để nói "NẾU anh ấy có ý nghĩa như vậy là không giúp đỡ THEN anh ấy rất, rất tệ". Chỉ cần logic cơ bản 101. :) Tôi thấy các giáo sư như thế này rất nhiều, nó rất tức giận. Tuy nhiên, nếu OP là sai thì không có hại, không phạm lỗi. :) – BobbyShaftoe

Các vấn đề liên quan