红霸王角蛙:一个网页制作者的困惑(关于Java鸡兔问题,欢迎参与)

来源:百度文库 编辑:高校问答 时间:2024/05/13 23:23:52
本人从事网站建设工作,粗通c,asp,php,JS,套用源代码时一般都能看懂,
也能修改为自己所用,但有一个问题一直困扰着我,请看下面程序:
import java.io.*
public class kunhuo
{
public static void main(String args[]) throws IOException
{
BufferedReader keyin=BufferedReader(new InputStreamReader(System.in);
String legs;
int c,r=0,x;
System.out.print("请输入兔和鸡的总脚数");
legs=keyin.readLine();
x=Integer.parseInt(legs);
System.out.println("鸡 兔");
do{
c=(x-4*r)/2;
System.out.print(c);
System.out.print(r);
System.out.println();
r++;
}
while(4*r<=x)
}
}

请问“c=(x-4*r)/2;”思路是怎么来的?我有很多程序都能看懂,但到自己
独立制作时却不知如何下手,只能去找相应的源程序去模仿。

请老手们指教一下,我该学一学什么知识才能解决我的问题,十分感谢!

这个是一个算法,属于数学问题~~~这个程序实际上是根据鸡脚2,兔脚4,总脚数。来算鸡多少只,兔多少只的,只要你把其中的数学解法弄懂了,那你就知道了。
就这个例子来说,程序中定义了3个变量:c,x,r;其中,c为鸡的个数,r为兔的个数,x为总脚数,每只鸡有两只脚,那么,鸡的个数=鸡脚数/2,而鸡脚总数=脚的总数(x)-兔的总数r*每只兔的脚数(4),则c=(x-4*r)/2 就这样来的。而这个问题的实际答案将是一组数的集合,因此使用循环语句。
要修改一个程序,首先就要弄清楚他的含义,其次,在找出它的正确算法,算法是程序的灵魂,建议多去学学算法和数据结构

c=(x-4*r)/2 思路并不是来自编程
你用编程的思维.是想不出这个问题来的

这是一个数学问题现在我们来假设鸡和兔在一块.上有35个头,下有94只脚

在解决鸡免同笼的问题时.一般是这样的思维,我们假设假设上题中都是鸡,那么有35×2=70只脚;实际上有94只脚,少算了24只脚,一只鸡比一只兔子少2只脚,用兔子替换鸡,替换一只就补上2只脚,一共替换12只就把少算的24只脚都补上了;也就是用24除以2就能得到兔子的只数,是12只;所以鸡有35-12=23只。我们再来验证一下,12×4+23×2=48+46=94,符合条件。所以答案是对的。

数学解答已经出来了.你自己再好好想下c=(x-4*r)/2吧