一个关于 马的问题
100匹马 和100片瓦大马能背 3块
中马背 2块
小马 两个背 1块
要用多少大马 中马 小马
这个 用递归怎么解决啊 小弟 初学 想请高手们指点
请在必要的地方 加点 注释 说明
----------------解决方案--------------------------------------------------------
谁出的题目,非要用递归来解决?
----------------解决方案--------------------------------------------------------
程序代码:
public static void main(String[] args) {
test(0,0);
}
public static void test(int b,int m){//b为大马数量,m为中马数量
int s=100-b-m;
if(s>=0 && 3*b+2*m+0.5*s==100){ //判断是否正好拉100片瓦,同时由于s是减出来了,所以不能为负数
System.out.println("大马"+b+"匹,中马"+m+"匹,小马"+s+"匹");
}
//接下来增加中马的数量,并调用自身
m++;
if(m>50){
m=0;
b++;
}
if(b<=33){
test(b,m);
}
}
test(0,0);
}
public static void test(int b,int m){//b为大马数量,m为中马数量
int s=100-b-m;
if(s>=0 && 3*b+2*m+0.5*s==100){ //判断是否正好拉100片瓦,同时由于s是减出来了,所以不能为负数
System.out.println("大马"+b+"匹,中马"+m+"匹,小马"+s+"匹");
}
//接下来增加中马的数量,并调用自身
m++;
if(m>50){
m=0;
b++;
}
if(b<=33){
test(b,m);
}
}
----------------解决方案--------------------------------------------------------
程序代码:
public class HorseTest
{
public static void main(String[] args)
{
int a, b, c;
for (a = 1; a < 100/3; a++)
{
for (b = 1; b < 100/2; b++)
{
for (c = 1; c < 100; c++)
if ((a * 6 + b * 4 + c ==200) && (a+b+c==100))
System.out.println("大马:"a + "中马: " + b + "小马: " + c);
}
}
}
}
{
public static void main(String[] args)
{
int a, b, c;
for (a = 1; a < 100/3; a++)
{
for (b = 1; b < 100/2; b++)
{
for (c = 1; c < 100; c++)
if ((a * 6 + b * 4 + c ==200) && (a+b+c==100))
System.out.println("大马:"a + "中马: " + b + "小马: " + c);
}
}
}
}
----------------解决方案--------------------------------------------------------
谢谢 解答 一会我去 试验一下 这道题 算出来的 结果 应该是 2匹大马 30匹 中马 68匹 小马
去测试测试 用 递归写 的目的 是想来 熟悉 递归的用法
----------------解决方案--------------------------------------------------------
递归是什么??
----------------解决方案--------------------------------------------------------
以下是引用huang5663290在2010-9-11 20:10:01的发言:
递归是什么??
递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象.递归是计算机科学的一个重要概念,递归的方法是程序设计中有效的方法,采用递归编写程序能使程序变得简洁和清晰.。 递归是什么??
----------------解决方案--------------------------------------------------------
这道题,怎么用递归啊? 求解
----------------解决方案--------------------------------------------------------
绝对牛啊,我得仔细研究一下,不过楼上是不是应该考虑小马不能是单数》》》》
----------------解决方案--------------------------------------------------------