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 ạ

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.

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

2 Likes

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

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

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.
1 Like

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 ^^

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.

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

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

  • 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.
1 Like

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

2 Likes

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ớ :joy:

2 Likes

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))
);
5 Likes

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

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

1 Like

toán tử 3 ngôi

(a*a==b*b+c*c) ? <...> : <...>
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?