Bài này mình được giao từ hồi lớp 8, đến giờ vẫn chưa giải được. Mời anh em DNH vào làm thử: Dùng tất cả các ngôn ngữ có thể, tìm ra số lớn nhất trong 5 số nguyên. Yêu cầu:
đều không được chấp nhận.
Hi HK boy. 1 Like
int MaxOf5Integers(int Input1, int Input2, int Input3, int Input4, int Input5) { var InputNumbers = new System.Collections.Generic.List<int>(new int[] { Input1, Input2, Input3, Input4, Input5 }); if (InputNumbers[0] > InputNumbers[1]) InputNumbers.RemoveAt(1); else InputNumbers.RemoveAt(0); if (InputNumbers[0] > InputNumbers[1]) InputNumbers.RemoveAt(1); else InputNumbers.RemoveAt(0); if (InputNumbers[0] > InputNumbers[1]) InputNumbers.RemoveAt(1); else InputNumbers.RemoveAt(0); if (InputNumbers[0] > InputNumbers[1]) InputNumbers.RemoveAt(1); else InputNumbers.RemoveAt(0); return InputNumbers[0]; } Đề gốc tính sau. 1 Like
Có được phép dùng mảng và hàm sắp xếp mảng không?
Quên mất. Không được dùng mảng nhé. Phong_Ky_Vo:
Làm vui mà, đừng nghiêm túc quá :v
Hi HK boy. 1 Like
#include <iostream> #include <algorithm> int main(/*int argc, char *argv[]*/) { int a = 10; int b = 22; auto maxof = [](int a, int b){ return (abs(a - b) + (a + b)) / 2; }; std::cout << maxof(a, b) << std::endl; return 0; } wandbox.org#include #include int main(/*int argc, char *argv[]*/) { int a = 10; int b = 22; auto maxof = [](int a, int b){ return (abs(a - b) + (a + b)) / 2; }; std::cout Cần float thì mình xài thêm Template 1 Like
Thế này khác gì 4 lần if đâu bác :v
Hi Dark.Hades.
Hi HK boy. 1 Like
Hoy, hỏi số nguyên đã :v mà đây mới là 2 số mà, bác viết thêm 5 số cho đủ bộ :v mặc dù mình biết là viết 5 số cũng tương tự thôi :v 1 Like
def get_max(a, b): return (a ^ ((a ^ b) & -(a < b))) a = 3 b = 5 c = 7 d = 9 e = 6 print(get_max(a, get_max(b, get_max(c, get_max(d, e))))) 2 Likes
Không dùng if luôn: int MaxOf2Integers(int Input1, int Input2) { return (int)((Input1 + Input2 + System.Math.Abs(Input1 - Input2)) / 2); } int MaxOf5Integers(int Input1, int Input2, int Input3, int Input4, int Input5) { return MaxOf2Integers(Input1, MaxOf2Integers(Input2, MaxOf2Integers(Input3, MaxOf2Integers(Input4, Input5)))); }2 Likes
#include <iostream> #include <algorithm> #include <vector> int main(/*int argc, char *argv[]*/) { std::vector<int> a = {2,3,1,5,4}; auto maxof = [](const std::vector<int> &a){ int max = a.front(); for (std::size_t i = 1; i < a.size(); i++) { max = (abs(max - a.at(i)) + (max + a.at(i))) / 2; } return max; }; std::cout << maxof(a) << std::endl; return 0; } wandbox.org#include #include #include int main(/*int argc, char *argv[]*/) { std::vector a = {2,3,1,5,4}; auto maxof = [](const std::vector &a){ int max = a.fr Các bác đổi thuật nhanh quá, mình viết vội cũng k kịp
1 Like
Thế thôi để lát về đổi thành recursive, đọc đề k kĩ 1 Like
n số tìm max thì tối thiểu cần n-1 phép ss, ko ăn gian dc đâu 2 Likes
Chắc không chơi hàm dựng sẵn. 1 Like
Ngôn ngữ Erlang, bản thân cú pháp không có if, không for max(A, B, C, D, E) -> lists:foldl( fun(Element, Max) when Element > Max -> Element; (_, Max) -> Max end, A, [B,C,D,E]).1 Like
Dùng bitwise nhé bạn, done int getMax(int a, int b) { int c = a - b; int k = (c >> 31) & 0x1; int max = a - k * c; return max; } int max_of_5 = getMax(a,getMax(b,getMax(c,getMax(d,e))))2 Likes next page → Home Categories FAQ/Guidelines Terms of Service Privacy Policy
Viết chương trình tìm số lớn nhất trong 2 số nguyên a b Các câu hỏi tương tự
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
Xem chi tiết
|