2015-11-15 12 views
5

Đây là một câu hỏi tôi đã hỏi ngày hôm nay tại một cuộc phỏng vấn công việc:Sửa một lỗi trong một Đối với loop

Nhìn vào đoạn mã sau:

int n=20; 
for (int i =0; i<n; i--) 
    print("*"); 

Bạn được phép thay đổi một và chỉ một ký tự để vòng lặp chạy chính xác 20 lần.

Tôi không thể trả lời câu hỏi được. Lúc đầu, tôi nghĩ để thiết lập i đến 40, nhưng sau đó nhận ra rằng 40 ins't nhỏ hơn 20.

phỏng vấn tôi nói rằng có 5 câu trả lời khác nhau cho câu hỏi này ...

Xin hãy giúp tôi tìm ra câu trả lời.

+0

Lưu ý rằng mã này sẽ chạy vĩnh viễn. Sự thay đổi nằm trong phần sau khi lặp lại của câu lệnh for-statement. –

+0

Đây không phải là javascript cũng không phải là C# –

+1

Đây cũng là một câu hỏi phỏng vấn cực kỳ ngu ngốc - câu trả lời này cho người phỏng vấn của bạn biết về bạn là gì? Bạn không muốn làm việc tại một công ty với quá trình phỏng vấn như vậy –

Trả lời

12

Thay đổi để

int n=20; 
for (int i =0; i<n; n--) 
print("*"); 
+0

Được làm tốt sherlock! –

9

Một người kia có thể là:

int n=20; 
for (int i =0; -i<n; i--) 
    print("*"); 
+0

cũng tốt ... nhưng, đó là về * thay đổi *, * không thêm * char. ;) – nelek

+2

@nelek không có anh ta đang thay đổi với một nhân vật trống;) –

+0

yeah ... :) .... Bạn cũng đúng :) – nelek

4

Cái này không được công việc cũng như:

int n=20; 
for (int i =0; i+n; i--) 
    print("*"); 

Giả sử các ngôn ngữ ngầm phôi nguyên để dữ liệu boolean, tức là xử lý các số nguyên khác không là số nguyên và số 0 là sai.

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