01/10/2018, 17:36

Kiểm tra 3 số có phải bộ 3 Pitago mà không dùng define, if, for, switch, using,...?

Em chào các anh chị. Em là tân sinh viên ạ. Em muốn hỏi là làm sao để khi nhập 3 số nếu 3 số đó là bộ 3 pythagorean thì xuất ra 1. Ngược lại thì xuất ra 0. Yêu cầu không dùng define,if,for,switch,using… Do em mới học tới các kiểu dữ liệu thôi ạ. Em cám ơn các anh chị đã đọc ạ

Tao Không Ngu. viết 19:41 ngày 01/10/2018

Hi Nguyễn Hà Thuyên.
Cái này dễ thôi. Bạn kiểm tra điều kiện với các cạnh lần lượt là cạnh huyền rồi nhân hết với nhau là được.

rogp10 viết 19:38 ngày 01/10/2018

Bonus point ấy mà dùng ternary đi bạn.

Nguyễn Nhi Anh viết 19:41 ngày 01/10/2018

vấn đề là không biết làm chứ không quan trọng bonus hay không ạ

Nguyễn Nhi Anh viết 19:41 ngày 01/10/2018

Dạ, có thể nói rõ hơn được không ạ

Tao Không Ngu. viết 19:41 ngày 01/10/2018

Hi Nguyễn Hà Thuyên.
Bài này khá hay dậy bạn cách vận dụng những công cụ bạn có.

  1. Nếu là tam giác vuông thì có một biểu thức : a^2 - b^2 - c^2 = 0.
  2. Cần kiểm tra tất cả các hoàn vị.
  3. Một số nhân với 0 bằng 0.
  4. Phần ra 1 thì mình đang nghĩ nốt.
Nguyễn Nhi Anh viết 19:38 ngày 01/10/2018

dạ đúng rồi, mặc dù em đã học trước ngôn ngữ c++ khi đọc qua nghĩ rằng được dùng các câu lệnh ai rè phải sử dụng những thứ đơn giản nhất ^^

Tao Không Ngu. viết 19:42 ngày 01/10/2018

Hi nguyễn trường.

  1. OK Mình nghĩ ra phần ra 1 rồi.
  2. Cái này cũng như lập trình thôi. Bạn sẽ có một số công cụ và cần kết hợp nó để thực hiện mục đích của mình.
Nguyễn Nhi Anh viết 19:43 ngày 01/10/2018

có thể chỉ dẫn giúp em được không ạ

Tao Không Ngu. viết 19:45 ngày 01/10/2018

Hi nguyễn trường.
Cái này khá mất thời gian bạn lên chat rom trong discos.

Trương Tấn Phát viết 19:44 ngày 01/10/2018
  • Biểu thức liên hệ giữa 3 cạnh của tam giác vuông.
  • Toán tử 3 ngôi.
HK boy viết 19:37 ngày 01/10/2018

Chẳng cần phải toán tử 3 ngôi. In thẳng điều kiện ra là được.

Kuroemon viết 19:38 ngày 01/10/2018

Yêu cầu không dùng define,if,for,switch,using…

Bạn nên cho mọi người biết hết mấy cái nó cấm, từ đó lách mới dễ chớ

Hung viết 19:45 ngày 01/10/2018

Dùng !

int a, b, c;
int is_positive, is_ptg;
...

is_positive = a > 0 && b > 0 && c > 0;

a = a * a;
b = b * b;
c = c * c;

int is_ptg = (
  !(c - (a + b)) ||
  !(b - (a + c)) ||
  !(a - (b + c))
);

return is_positive ||  is_ptg;

Rút gọn

int a, b, c;
...
return (
  (a > 0 && b > 0 && c > 0) ||
  !(((c = c*c) - (a = a*a) - (b = b*b)) &&
    (b - a - c) &&
    (a - b - c))
);
Nguyễn Nhi Anh viết 19:53 ngày 01/10/2018

em cám ơn ạ. chúc anh buổi tối tốt lành

rogp10 viết 19:46 ngày 01/10/2018

Bạn đánh tick cho câu trả lời tốt nhất nhé

Trần Công viết 19:43 ngày 01/10/2018

toán tử 3 ngôi

(a*a==b*b+c*c) ? <...> : <...>
Bài liên quan
0