cuốn sách gpt4 ai đã làm

c# - Tìm giá trị số nguyên gần nhất từ ​​mảng số nguyên đã cho, làm tròn

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 17:50:45 28 4
mua khóa gpt4 Nike

Tôi đang cố gắng tìm ra cách tốt nhất để tìm giá trị gần nhất ĐƯỢC LÀM TRÒN XUỐNG trong danh sách các số nguyên sử dụng n bất kỳ giữa hai số còn lại được lưu trong danh sách. Trong trường hợp này, tất cả các số nguyên sẽ luôn không dấu, chỉ để đề phòng.

Giả sử như sau:


Danh sách luôn bắt đầu từ 0
Danh sách luôn được sắp xếp theo ASC
Tất cả các số nguyên trong danh sách đều không dấu (không cầnToán.Abs)
Các số dùng để so sánh luôn không có dấu


Ví dụ:

Danh sách số = Danh sách mới() { 0, 2000, 4000, 8000, 8500, 9101, 10010 };
int myNumber = 9000;
int theTrả lời; // phải là 8500

for (int i = 0; i < number.Count; i++) {
if (i == number.Count - 1) {
theAnswer = số[i];
phá vỡ;
} khác nếu (myNumber < số[i + 1]) {
theAnswer = số[i];
phá vỡ;
}
}


Ví dụ mã trước đó hoạt động tốt.

Có cách nào tốt hơn, ngắn gọn hơn không?

câu trả lời hay nhất

Bạn có thể sử dụngDanh sách.BinarySearchThay vì liệt kê các phần tử của danh sách theo thứ tự.

Danh sách số = Danh sách mới() { 0, 2000, 4000, 8000, 8500, 9101, 10010 };
int myNumber = 9000;

int r=numbers.BinarySearch(myNumber);
int theAnswer=numbers[r>=0?r:~r-1];

Về C# - tìm giá trị số nguyên gần nhất từ ​​một mảng số nguyên nhất định, làm tròn số, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/27969423/

28 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress