Java 将菱形打印方法转换为递归方法
今晚我们必须提交一个包含许多方法的项目,其中之一是打印一个只有奇数的菱形,它们之间有空格,如果数字是3,则输出如下: * * * * *Java 将菱形打印方法转换为递归方法,java,recursion,methods,shapes,Java,Recursion,Methods,Shapes,今晚我们必须提交一个包含许多方法的项目,其中之一是打印一个只有奇数的菱形,它们之间有空格,如果数字是3,则输出如下: * * * * * 嗯,我试图自己编写一个方法,但我没能,只是找到了这个方法,我需要有人帮助我将其转换为递归方法。非常感谢公共静态字符串DiamondFint num//method1 { ifnum>0 { 返回*+金刚石+2; } 其他的 { 回来 } } 公共静态字符串DiamondSint num//method2 { ifnum>0 { return*+Diam
嗯,我试图自己编写一个方法,但我没能,只是找到了这个方法,我需要有人帮助我将其转换为递归方法。非常感谢公共静态字符串DiamondFint num//method1 { ifnum>0 { 返回*+金刚石+2; } 其他的 { 回来 } } 公共静态字符串DiamondSint num//method2 { ifnum>0 { return*+DiamondFnum+2;//访问方法1 } 其他的 { 回来 } } }
这一个是完全错误的,给了我借口 公共静态字符串菱形 num//method1
{
if(num>0)
{
return "* " +
小菜蛾+2
}
else
{
return " ";
}
}
public static String DiamondS(int
num//method2
{
if(num>0)
{
return " * " +
小菜蛾+2//访问方法1
}
else
{
return " ";
}
}
public static String Space(int num)
//方法3
{
if(num>0)
{
return " " + Space(num+2);
}
else
{
return " ";
}
}
public static void DiamondResult(int
num//method4
{
for(int i=1; i<num; i++)
{
System.out.print(Space(num-i));//access method3
System.out.println(DiamondF(i));//access method1
}
for(int i=0; i<num; i++)
{
System.out.println(DiamondS(num-i));//access method2
System.out.print(Space(i));//access method3
}
}很难理解你想要什么,因为你的描述 打印只有奇数且中间有空格的菱形的步骤 还有你公布的数字
*
* * *
*
不太匹配。无论如何,这里有一个非常简单的递归代码,它可以打印一个菱形,理解它,然后从那里开始工作
static int iteration = 1;
private static void drawDiamond(int n) {
String row = new String(new char[iteration]).replace("\0", "*"); // create a string with '*' repating n times
iteration++;
if (iteration <= n) {
System.out.println(row);
drawDiamond(n);
}
System.out.println(row);
}
你可以先尝试格式化你的帖子,并解释你已经尝试过的内容。如果你一直在寻找我们可以帮助你的方法,你永远也学不到,但你不应该只是复制和粘贴代码。你应该试着通过调试弄清楚为什么这种方法有效……如果你想成为一名开发人员,你需要学习如何开发。我们可以帮助您,但您至少应该尝试一些东西,然后我们可以为您指出正确的方向…查找有关递归的文章,它应该可以帮助您开始…如果您有什么新的想法,请编辑此问题。除非答案是正确的,否则不要发布答案。这也可能对你有所帮助
*
* * *
*
static int iteration = 1;
private static void drawDiamond(int n) {
String row = new String(new char[iteration]).replace("\0", "*"); // create a string with '*' repating n times
iteration++;
if (iteration <= n) {
System.out.println(row);
drawDiamond(n);
}
System.out.println(row);
}
*
**
***
**
*