题目:
编写Java程序求鸡兔同笼问题:头5个,脚16个,问鸡兔各几何?
提示:分别声明变量头(head)和脚(foot)的求值表达式
错误思路:
数学思维,觉得列个二元一次方程组计算机自己就会自动解出来
正确思路 :(相当于自己解方程而非计算机帮你解)
根据上边的“错误思路”里边的方程写出鸡和兔的表达式
完整代码:
package Project01;
public class CRinOne {
public static void main(String[] args) {
int head = 5, foot = 16;
int chicken =(foot - 2 * head)/2;
int rabbit = head - chicken;
System.out.println("鸡有" + chicken + "只");
System.out.println("兔子有" + rabbit + "只");
}
}
输出效果:
要点:如何写出鸡和兔的表达式
int rabbit = (foot - 2 * head) / 2;
int chicken = head - rabbit;
细节优化
细节一:验证题目的合理性
// 检查脚数合法性(必须为偶数)
if (foot % 2 != 0) {
System.out.println("错误:脚的数量必须是偶数!");
return;
}
细节二:验证结果的合理性
// 验证结果合理性
if (rabbit >= 0 && chicken >= 0)
{
System.out.println("鸡有 " + chicken + " 只");
System.out.println("兔有 " + rabbit + " 只");
}
else
{
System.out.println("无解:数量不能为负数");
}
完整优化代码
package Project01;
public class CRinOne {
public static void main(String[] args) {
int head = 5, foot = 16;
// 检查脚数合法性(必须为偶数)
if (foot % 2 != 0) {
System.out.println("错误:脚的数量必须是偶数!");
return;
}
int chicken =(foot - 2 * head)/2;
int rabbit = head - chicken;
// 验证结果合理性
if (rabbit >= 0 && chicken >= 0)
{
System.out.println("鸡有 " + chicken + " 只");
System.out.println("兔有 " + rabbit + " 只");
}
else
{
System.out.println("无解:数量不能为负数");
}
}
}
输出效果:
补充
尽量不要设a,b这种变量了,后期会想不起来其代表的含义
鸡的头数就设chicken,兔子的头数就设rabbit
头数就设head,脚数就设foot