Java问题,不懂,求大神赐教,问题如下:
publicclassYuan2{publicstaticvoidmain(String[]args){intr=30;for(inty=0;y<=2*r;y+=2){l...
public class Yuan2{
public static void main(String[] args) {
int r = 30;
for (int y = 0; y <= 2 * r; y += 2) {
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));
long longLength = 2 * (r - x);
for (int i = 0; i <= x; i++) {
System.out.print(' ');
}
System.out.print('*');
for (int j = 0; j <= longLength; j++) {
System.out.print(' ');
}
System.out.println('*');
}
}
}
for (int y = 0; y <= 2 * r; y += 2) {
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));
long longLength = 2 * (r - x);这几句看不懂,求解析! 展开
public static void main(String[] args) {
int r = 30;
for (int y = 0; y <= 2 * r; y += 2) {
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));
long longLength = 2 * (r - x);
for (int i = 0; i <= x; i++) {
System.out.print(' ');
}
System.out.print('*');
for (int j = 0; j <= longLength; j++) {
System.out.print(' ');
}
System.out.println('*');
}
}
}
for (int y = 0; y <= 2 * r; y += 2) {
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));
long longLength = 2 * (r - x);这几句看不懂,求解析! 展开
2个回答
展开全部
for (int y = 0; y <= 2 * r; y += 2) 表示循环,初始值是y=0,当y<=2*r的时候,就执行for中的语句,执行结束后y=y+2;
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));这句是一个赋值语句,先看内部,Math.sqrt(2 * r * y - y * y)是math包里的求平方函数,也就是求(2 * r * y - y * y)的平方,r-刚才求得平方值,最后外层再加一个round函数,round是四舍五入的函数,最后的结果就是r-(2*r*y-y*y)²的值四舍五入取整。
long longLength = 2 * (r - x);最后这句就是2倍的(r-x)没有难度。
具体的业务意思可以自己理解下,程序翻译过来就是上面的意思
long x = Math.round(r - Math.sqrt(2 * r * y - y * y));这句是一个赋值语句,先看内部,Math.sqrt(2 * r * y - y * y)是math包里的求平方函数,也就是求(2 * r * y - y * y)的平方,r-刚才求得平方值,最后外层再加一个round函数,round是四舍五入的函数,最后的结果就是r-(2*r*y-y*y)²的值四舍五入取整。
long longLength = 2 * (r - x);最后这句就是2倍的(r-x)没有难度。
具体的业务意思可以自己理解下,程序翻译过来就是上面的意思
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询