今晚我们必须提交一个包含许多方法的项目,其中一个是打印一个只有奇数的钻石,它们之间有空格,如果数字是3则有这样的输出:
* * * * *
public static void drawDiamond(int n)
{
int q = n/2;
for(int a = -q; a <= q ;a++) {
int b = (a < 0)?-a:a;
int c = q-b;
for(int d = 0;d <= q+c;d++) {
System.out.print((d < b)?" ":"*");
}
System.out.println();
}
}
好吧,我试着自己写一个方法,但我不能,只是发现了这个,我需要有人帮我把它转换成递归方法......非常感谢你&lt; 3
答案 0 :(得分:0)
public static String DiamondF(int num)// method1 { 如果(NUM&0) { 返回&#34; *&#34; + DiamondF(num + 2); } 其他 { 返回&#34; &#34 ;; } } public static String DiamondS(int num)// method2 { 如果(NUM&0) { 返回&#34; *&#34; + DiamondF(num + 2); //访问方法1 } 其他 { 返回&#34; &#34 ;; } }
public static String Space(int num) //method3
{
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
}
}
这个完全错了,给了我一些惊喜!
答案 1 :(得分:0)
public static String DiamondF(int
num)// method1
{
if(num>0)
{
return "* " +
DiamondF(NUM + 2);
}
else
{
return " ";
}
}
public static String DiamondS(int
NUM)//方法2
{
if(num>0)
{
return " * " +
DiamondF(num + 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)//方法4
{
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
} }
答案 2 :(得分:0)
很难理解你想要什么,导致你的描述
打印一个只有奇数的钻石,它们之间有空格
和你发布的数字
*
* * *
*
不匹配。无论如何,这是一个非常简单的递归代码,可以打印钻石,理解它并从那里开始工作
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);
}
打印
*
**
***
**
*