public static void main(String[] args)
创新互联主要从事网站建设、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务十堰,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
{
System.out.println("请输入一个数");
Scanner sc = new Scanner(System.in);
int n= sc.nextInt();
for (int i=0;i=n-1;i++)
{
for(int j=0;j(int)2*((n-sqrt((pow(n,2)-pow((n-i),2)))));j++)
System.out.print(" ");//打印 个空格
System.out.print("*");
for(int j=0;j4*sqrt((pow(n,2)-pow((n-i),2)));j++)
System.out.print(" ");//打印 个空格
System.out.println("*");
}
//倒转打印
for (int i=n-1;i=0;i--)
{
for(int j=0;j(int)2*((n-sqrt(pow(n,2)-pow((n-i),2))));j++)
System.out.print(" ");//打印个空格
System.out.print("*");
for(int j=0;j4*sqrt(pow(n,2)-pow((n-i),2));j++)
System.out.print(" ");//打印个空格
System.out.println("*");
}
}
其实和话菱形是一个道理的。
定义数组,或者String都可以,
提示1
空格 空格空格 *//后面的空格无需理会
空格空格 * 空格 空格 * //后面的不用理会
所以。 你可以定义一个 与圆直径相等的 String,或一位数组
这样用2个For循环就可以画出来了
第一个For是画 圆圈的直径以上部分,
第二For 是画 其下部分,代码与上面的接近。
Shape.java
package test;
public class Shape {
// 半径
private double r;
// 长
private double l;
// 宽
private double h;
// 实例化圆的时候需要给出中心点和半径
public Shape(double r, double l, double h) {
this.r = r;
this.l = l;
this.h = h;
}
// 圆的
public double calArea() {
return Math.PI * Math.pow(r, 2);
}
public double calLength() {
return 2 * r * Math.PI;
}
// 长方形的
public double calArea2() {
return l * h;
}
public double calLength2() {
return 2 * (l + h);
}
}
ShapeTest.java
package test;
public class ShapeTest extends Shape {
public ShapeTest(double r, double l, double h) {
super(r, l ,h);
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
ShapeTest ct = new ShapeTest(4.0, 3, 10);
System.out.println("圆的面积为:" + ct.calArea());
System.out.println("圆的周长为:" + ct.calLength());
System.out.println("长方形面积:"+ct.calArea2());
System.out.println("长方形周长:"+ct.calLength2());
}
}
望采纳
public class PrintCircle {
/**
* @param args
*/
public static void main(String[] args) {
int n=1000;//n越大,才能越接近圆
PrintCircle p = new PrintCircle();
for(int i=0;i2*n;i++){
p.printPoint(n,i);
}
}
private int[] getXFromY(int y,int n)//n为半径,y2n,返回2个x
{
if(y=n){//上半侧
int x1=n-(int)Math.sqrt(n*n-(n-y)*(n-y));
int x2=(int)Math.sqrt(n*n-(n-y)*(n-y))+n;
return new int[]{x1,x2};
}
else if(y=2*n){//下半侧
int x1=n-(int)Math.sqrt(n*n-(n-y)*(n-y));
int x2=(int)Math.sqrt(n*n-(n-y)*(n-y))+n;
return new int[]{x1,x2};
}
return null;
}
private void printPoint(int n,int y){//半径n,在(x,y)的位置打印一个*
int x1=getXFromY(y,n)[0];
int x2=getXFromY(y,n)[1];
for(int i=0;i=2*n;i++){
if(i==2*n) System.out.println("\n");
if(i==x1||i==x2) System.out.print("*");
else System.out.print(" ");
}
}
}