鸡兔同笼问题:利用Scratch C/C++ Python解决

文章目录:

一:问题

二:解决办法 

1.通过Scratch解决

2.通过C/C++解决

3.通过Python解决


一:问题


该问题大约在1500年前的《孙子算经》中就有记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
解释:鸡兔一个笼子35个头,一共有94只脚,问鸡和兔有多少?

传统方法
	1.全鸡:35只	兔:0只
	2.全兔:35只	鸡:0只
	3.  鸡x		兔35-x	(兔x		鸡35-x)
	x*2+(35-x)*4=94
	x=23		35-23=12

《孙子算经》方法:脚多的
	脚数/2-头数=兔数			头数-兔数=鸡数
	94/2-35=12			35-12=23
------------------------------------------------------------------------------------
有鸡兔共20只,脚44只,鸡兔各几只?
	44/2-20=2			20-2=18

二:解决办法 

1.通过Scratch解决

 效果图◕‿◕✌✌✌

Scratch鸡兔同笼问题


 

2.通过C/C++解决

#include <iostream> // 包含iostream头文件以使用cout
using namespace std; // 使用std命名空间,这样可以直接写cout而不是std::cout


void test1(int tousum,int zhisum){
	int rabbit = 0, chicken = 0;

    // 检查是否有解,并且解是合理的(即非负整数)
    if (zhisum % 2 == 0 && zhisum / 2 >= tousum) {
        rabbit = zhisum / 2 - tousum;
        chicken = tousum - rabbit;
        if (rabbit >= 0 && chicken >= 0) {
            cout << "鸡的数量:" << chicken << ",兔的数量:" << rabbit << endl;
        } else {
            cout << "无解或解不是非负整数。" << endl;
        }
    } else {
        cout << "无解,因为总腿数必须是偶数,且至少和总头数一样多。" << endl;
    }
}


void test2(int tousum,int zhisum){
	int chicken;
    int rabbit;

    for (chicken = 1; chicken <= tousum; chicken = chicken + 1) {
        for (rabbit = 1; rabbit <= tousum; rabbit = rabbit + 1) {
            if (chicken * 1 + rabbit * 1 == tousum) {
                if (chicken * 2 + rabbit * 4 == zhisum) {
                    cout << "鸡的数量:" << chicken << ",兔的数量:" << rabbit << endl; // 添加endl以换行
                }
            }
        }
    }
}


int main() { // main函数声明返回int类型
	test1(20,44);
	test2(20,44);


	system("pause");
    return 0; // main函数返回0,表示程序正常退出
}

运行结果 

3.通过Python解决

def test1(tousum, zhisum):
    # 检查是否有解,并且解是合理的(即非负整数)
    if zhisum % 2 == 0 and zhisum // 2 >= tousum:
        rabbit = zhisum // 2 - tousum
        chicken = tousum - rabbit
        if rabbit >= 0 and chicken >= 0:
            print("鸡的数量:", chicken, ",兔的数量:", rabbit)
        else:
            print("无解或解不是非负整数。")
    else:
        print("无解,因为总腿数必须是偶数,且至少和总头数一样多。")



def test2(tousum, zhisum):
    for chicken in range(1, tousum + 1):
        for rabbit in range(1, tousum + 1):
            if chicken + rabbit == tousum:
                if chicken * 2 + rabbit * 4 == zhisum:
                    print("鸡的数量:", chicken, ",兔的数量:", rabbit)



# 调用函数进行测试
tousum = 20  # 总头数
zhisum = 44  # 总腿数
test1(tousum, zhisum)
test2(tousum, zhisum)

运行结果  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值