Kiến thức

Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Hỏi mấy gà, mấy chó?

Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Hỏi mấy gà, mấy chó?

Có một bài toán dân gian khá thú vị như sau:

Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu(36) con
Một trăm(100) chân chẵn
Hỏi mấy gà, mấy chó?

Đây là bài toán vui, từ khi học tiểu học mình đã biết, lên trung học, học giải phương trình cũng gặp lại nó. Và bây giờ, làm lập trình, tự dưng nhớ tới nó, nên viết ra đây, coi như chia sẻ cho các bạn mới học lập trình có thêm hào hứng, giải quyết các bài tập nho nhỏ, vui vẻ tương tự.

Cách giải nó như sau:

Gọi x là số gà
Số chó là: 36 – x
Số chân gà: 2x
Số chân chó: 4(36-x)
theo đề bài ta có:
2x + 4(36 – x) =100
2x + 144 – 4x = 100
2x = 144 – 100
2x = 44
x = 22
Vậy số gà là 22 con
Số chó : 36 – 22 = 14

Bạn bảo mấy con chó đặt 2 chân trước lên ghế,tổng số chân dưới đất sẽ là 36 x 2  = 72 chân. Suy ra số chân trên ghế là 28 chân.
Vậy có 14 con chó ….

Dùng hệ phương trình
Gọi x là gà, y là chó
Ta có hệ pt:
x + y = 36
2x + 4y = 100
Giải hệ pt
x = 22,y = 14
Vậy gà có 22 con, chó có 14 con. Mời các bạn chia sẻ thêm cách giải hay, thú vị khác nữa nhé.

Vậy thì làm sao để giải nó bằng cách lập trình. Đây không phải vấn đề khó với nhiều bạn, tuy nhiên mình thấy vui vẻ, nên vẫn viết ra đây.

Sau đây là cách giải trong một số ngôn ngữ lập trình như Pascal, C++, C#, Java, PHP, ASP.NET, Javascript. Trường hợp máy bạn không cài sẵn IDE, bạn có thể sử dụng trang web 

http://ideone.com

 để chạy thử code.

Vì số con là 36 và số chân là 100. Giả sử tất cả là chó, thì số con tối đa là 100/4 = 25 (con). Tối thiểu là 36 / 4 = 9 (con). Như vậy chúng ta chỉ cần sử dụng vòng lặp for từ 9->25. Tối ưu hơn so với từ 0 -> 36

Bạn đang xem: Vừa gà vừa chó, bó lại cho tròn, ba mươi sáu con, một trăm chân chẵn. Hỏi mấy gà, mấy chó?

Pascal

 program HelloWorld; var i :Integer; begin    writeln('Giai bai toan dan gian bang Pascal'); writeln('Vua ga vua cho'); writeln('Bo lai cho tron'); writeln('Ba muoi sau(36) con'); writeln('Mot tram(100) chan chan'); writeln('Hoi may ga, may cho?'); for i:= 9 to 25 do if((i * 2 + (36 - i) * 4) = 100) then writeln('So ga la: ', i); writeln('So cho la: ', 36 - i); end. 

Xem thêm: Phân hiệu Trường Đại học Nông Lâm TP. Hồ Chí Minh tại Gia Lai

C++

#include  #include; #include; using namespace std; int main(){ cout 

Java

public class Main { public Main() { // TODO Auto-generated constructor stub } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Giải bài toán dân gian trong Java"); System.out.println("Vừa gà vừa chó"); System.out.println("Bó lại cho tròn"); System.out.println("Ba mươi sáu(36) con"); System.out.println("Một trăm(100) chân chẵn"); System.out.println("Hỏi mấy gà, mấy chó?n"); for(int i = 9; i 

Xem thêm: Trong không gian với hệ tọa độ Oxyz cho mặt phẳng (left( P right):3x + 4y + 5z + 8 = 0) và đường thẳng d là giao tuyến của hai mặt phẳng (left( alpha  right):x

C#

class Program     {         static void Main(string[] args)         {             Console.WriteLine("Gia bai toan dan gian trong C#");             Console.Write("Vua ga vua chon");             Console.Write("Bo lai cho tronn");             Console.Write("Ba muoi sau(36) conn");             Console.Write("Mot tram(100) chan chann");             Console.WriteLine("Hoi may ga, may cho?n");             for (int i = 9; i 

ASP.NET

void GiaiBaiToanDanGian()     {         StringBuilder sb = new StringBuilder();         for (int i = 9; i 

Xem thêm: BẢNG KHỐI LƯỢNG THÉP TẤM,THÉP LÁ,THÉP SS400,CT3

PHP

  Bài toán dân gianGiải bài toán dân gian trong PHP Vừa gà vừa chó  Bó lại cho tròn  Ba mươi sáu(36) con  Một trăm(100) chân chẵn Hỏi mấy gà, mấy chó?  <?php for($i = 9; $i < 25; $i ++) { if(($i * 2 + (36-$i)*4) == 100) { echo 'Số gà là: '.$i.'
'; echo 'Số chó là: '.(36 - $i); } } ?>

Javascript

  

Chúc các bạn học lập trình vui vẻ

Chuyên mục: Kiến thức

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button