繁体   English   中英

Java使用while循环打印小于输入的完美正方形

[英]Java Print the perfect squares less than an input using a while loop

这是我坚持的家庭作业,也许有人可以帮助我:

“使用while循环编写一个程序,打印小于输入'n'的完美正方形。例如,如果n = 30,则打印25、16、9、4、2、1、0,”

import java.util.Scanner;
public class fourpointone {

    public static void main(String[] args) {

        int input, output;

        System.out.println("Please enter an integer");
        System.out.println();

        Scanner num= new Scanner(System.in);
        input = num.nextInt();
        System.out.println();

        while(input>=0){

            System.out.println(Math.pow(input, 2));
            --input;

        }
        System.out.println();
        System.out.println("are the perfect squares less than your input");
    }

}

它给了我输入平方以下的所有完美平方。 就像我输入 7 时得到的方块 49 一样。我想也许有一种方法可以只打印低于输入值的结果,但我不知道该怎么做。 可能有一种更简单的方法来完成整个事情,但到目前为止我还没有弄清楚。

反过来,您会使其变得更加复杂(令人惊讶的是,这种情况的频率如此之高)。 最简单的方法是从 0 开始递增循环,每次在循环内递增 1。

由于这是家庭作业,我将留给您弄清楚如何退出循环 - 但如果您从 0 开始递增,而不是从您想要的最高值递减,这非常简单。 尽管如果您仍然遇到问题,请发表评论。

或者,如果要求从最高到最低; 您可以使用Math.sqrt检查根是否为整数(提示提示)。

Scanner sc = new Scanner (System.in);
int A = sc.nextInt();
int i =1;
while((i*i)<=A) {         
  System.out.print(i*i +" ");
  i++;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM