首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

遇到一个很纠结的有关问题

2013-07-09 
遇到一个很纠结的问题import java.util.*class temp{public static void main(String []args){Scanner sc

遇到一个很纠结的问题

import java.util.*;
class temp
{


public static void main(String []args)
{
Scanner sc=new Scanner(System.in);

int count=sc.nextInt();

int b=1;
for (int i=1; i<=count; i++)
{
if (!(i%2==0))
{
for (int j=count/2+1;j>b;j--)//j=count/2+1
{
System.out.print(" ");
}
}

for (int y=1; y<=i; y++)
{
if (!(i%2==0))
{
System.out.print("*");
}
}

if (!(i%2==0))
{
System.out.println();
b++;
}
}
int a=1;
for (int i=count-2; i>0; i--)
{
if (!(i%2==0))
{
for (int j=0; j<a; j++)
    {
System.out.print(" ");
    }
}

for (int y=i; y>0; y--)
{
if (!(i%2==0))
{
System.out.print("*");
}
}
if (!(i%2==0))
{

    System.out.println();
a++;
}
}
}
}


关于打印 菱形的
就是在我注释那里  
如果count是偶数 用count/2 正好 如果是奇数就少一个" "
如果coutt是奇数 用count/2+1正好  偶数就多一个" "
好纠结啊..
[解决办法]
这是打印菱形的?什么乱七八糟的算法。。
[解决办法]
private int len=3;
public void printRhombus(){
if(len%2==0) --len;
for (int i =len/2; i >=-len/2; i--) {
System.out.print(repeatStr(" ", Math.abs(i)));
System.out.print(repeatStr("*", len-Math.abs(i)*2));
System.out.println(repeatStr(" ", Math.abs(i)));
}
}
public String repeatStr(String str,int repeatCount){
if(str==null 
[解决办法]
 str.length()==0 
------解决方案--------------------


 repeatCount<=0) return "";
StringBuffer buf=new StringBuffer();
for (int i = 0; i < repeatCount; i++)  buf.append(str);
return buf.toString();
}


[解决办法]

这个问题和你上一个一样。只不过是在倒叙输出罢了
import java.util.Scanner;

public class B
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1;i <= n;i++)
{
for(int j = n - i;j >= 0;j--)
{
System.out.print(" ");
}
for(int j = 1;j <= (2 * i - 1);j++)
System.out.print("*");
System.out.println();
}

for(int i = n -1;i > 0;i--)
{
for(int j = n - i;j >= 0;j--)
{
System.out.print(" ");
}
for(int j = 1;j <= (2 * i - 1);j++)
System.out.print("*");
System.out.println();
}
}
}

[解决办法]

public class Main {
public static void main(String[] args) {
printDiamond(6);
}

public static void printDiamond(int edge){
String star = "*";
int i = 0;
for(;i<edge-1;i++){
System.out.print(" ");
}
i=0;
for(;i<edge;i++){
System.out.print(star);
}
System.out.println();
int space1 = edge-1;
int space2 = space1+edge-2;
i=0;
int j;
for(;i<edge-2;i++){
j = 0;
for(;j<space2;j++){
if(j==space1-1){
System.out.print(star);
}else{
System.out.print(" ");
}
}
System.out.print(star);
System.out.println();
space1--;
space2--;
}
i=0;
for(;i<edge;i++){
System.out.print(star);
}
}

}

写了一个万能的方法给你   参数的意思是边长    虽然打印出来看上去不像菱形 但是如果按“*”的数量来算长度的话那就是菱形
------解决方案--------------------


引用:
这是打印菱形的?什么乱七八糟的算法。。



咱们当新手的时候不也是这样的吗?

热点排行