鸡兔同笼问题解决(JAVA) (由浅入深)

鸡兔同笼 用 “去脚法”来做 简单快捷!

题目描述

鸡兔同笼是中国古代著名趣题之一。

大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”

这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔?

输入

输入一行2个整数分别表示脚的数量和头的数量,2个整数之间用一个空格分开

输出

输出2行分别表示鸡的数量和兔子的数量

算法:

上代码(详细看注释):

import java.util.*;
public class Main {
public static void main(String[] args)
{
	Scanner ch = new Scanner(System.in);
	int j = ch.nextInt(),t = ch.nextInt(); /*定义 脚 和 头*/
	int j_1 = j-t;int j_2 = j_1-t;  //第一次抬一只脚, 第二次抬两只脚,鸡就没脚了
	int tu = j_2 / 2;//鸡没脚了,兔子还有两只脚,就用脚除以兔子的两只脚
	int ji = t-tu;    知道兔子有多少了,那也知道鸡有多少了...
	System.out.println(ji);
	System.out.print(tu);
}
}

  

----------------------------------------升级-----------------------------------------------------

知道了去脚法 那么我们升级为 去掉两只脚 代码岂不是更简洁和更容易理解吗?
一下去掉两只脚 那么 鸡 是没有脚的  那么就剩下兔子的脚了   即:

全部脚 - (2*头【砍去鸡和兔一人一双脚】) = 兔脚
兔脚 / 2 = 兔子;
头 - 兔子 = 鸡;

那么代码如下:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) 
    {
        Scanner in = new Scanner(System.in);
        
        int foot  = in.nextInt(),head = in.nextInt(),ji = 0,tu = 0; //输入脚和头,声明鸡和兔
        foot -= 2*head;//脚 = 脚- 砍掉的脚 即:求兔子的脚
        tu = foot / 2; //兔子的数量 = 兔子的脚/2
        ji = head - tu;    // 鸡的数量 = 头 减 兔;
        System.out.print("鸡:" + ji + " 兔:" + tu);
        
        
        


    }    
}



本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/13939781.html

原文地址:https://www.cnblogs.com/bi-hu/p/13939781.html