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

     

Vừa gà vừa chóBó lại cho trònBa mươi sáu(36) conMột trăm(100) chân chẵnHỏ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ự.

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

Cách giải nó như sau:Gọi x là số gàSố chó là: 36 – xSố chân gà: 2xSố chân chó: 4(36-x)theo đề bài ta có:2x + 4(36 – x) =1002x + 144 – 4x = 1002x = 144 – 1002x = 44x = 22Vậy số gà là 22 conSố 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ìnhGọi x là gà, y là chóTa có hệ pt:x + y = 362x + 4y = 100Giải hệ ptx = 22,y = 14Vậ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.

Xem thêm: Hàm Kiểm Tra Số Chính Phương, Kiểm Tra Số Chính Phương Trong C/C++

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

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 doif((i * 2 + (36 - i) * 4) = 100) thenwriteln("So ga la: ", i);writeln("So cho la: ", 36 - i);end.

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 stubSystem.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 

C#

class Program { static void Main(string<> args) { Console.WriteLine("Gia bai toan dan gian trong C#"); Console.Write("Vua ga vua cho\n"); Console.Write("Bo lai cho tron\n"); Console.Write("Ba muoi sau(36) con\n"); Console.Write("Mot tram(100) chan chan\n"); 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 

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ẵnHỏi mấy gà, mấy chó?";echo "Số chó là: ".(36 - $i);}}?>

Chuyên mục: Kiến thức thú vị