/*
今天一哥们问我一个java题,大概意思是,
一只公鸡5块钱,一只母鸡3块钱,3只小鸡一块钱,
一个农夫用100块钱买100只鸡(不许解方程),怎么实现?
编写java程序。
虽然,我的递归还是没有学会,但是,
我相信,任何的递归都应该可以改写成循环的形式,
所以,反过来看,循环可不可以写成递归呢?至少这道题就可以实现
递归与循环的转换,这道题也应该是一个经典例子。
因为,如果可以做出此题,至少知道递归与循环的一个简单关系。
但是,我的递归学得确实不好,无论从效率与其他性能考虑,
这道题写得很不好。
如果需要一个高效可靠的递归,或许华哥和奇哥等人能够解决。
我在这里期待更好的递归解决方法。
虽然写得不好,但是本着互相学习的精神,我还是把他发上来吧。
*/
class sum123
{
public static void main(String[] args)
{
System.out.println("哥们,要想知道答案,请耐心等待10秒钟吧!");
digui(1,1,98);
}
public static void digui(int a1,int a2,int a3)
{
if(a1<=0||a2<=0||a3<=0||a1>=20||a2>=33||a3>=100)
{
return;
}
else
{
if(a1>0&&a1<20)
{
digui(a1+1,a2,99-a1-a2);
}
if(a2>0&&a2<33)
{
digui(a1,a2+1,99-a1-a2);
}
if(a1+a2+a3==100&&a1*15+a2*9+a3==300)
{
System.out.println("哈哈,答案出来喽:");
System.out.println("公鸡:"+a1+"只,母鸡:"
+a2+"只,小鸡:"+a3+"只");
System.exit(0);//我现在才知道,这一代码是实在没有办法的人才干的事。
}
}
}
}
|