计算机挑战赛java c组2020年赛题

题目1

  1. 统计从1到N的整数中,所有立方值的平方根为整数的数的格式 输入说明:整数N(N<10000) 输出说明:符合条件的数的个数,如4^3= 64 = 8^2 输入样例:10 输出样例:3 (说明:样例中符合条件的3个数是1、4、9
import java.util.Scanner;
import static java.lang.Math.pow;

public class jk {

    public static void main(String[] args) {

        Scanner input=new Scanner(System.in);
        int num=input.nextInt();
        int i;
        int count=0;
        for(i = 1;i<=num;i++){
          double tmp=pow(i,3);
          double sqrt=Math.sqrt(tmp);
            if(sqrt==(int)sqrt){
                count++;
               System.out.println((int)tmp);
            }
        }
        System.out.println(count);
    }}

这里做一下解析:

一个数的立方在开平方是一个整数;所以必须要用到pow次方的运算方法,和sqrt开平方的方法

然而他说开方是一个整数那么只要sqrt开方取整就行。

输出说明:符合条件的数的个数,如4^3= 64 = 8^2,他这里的输出说明可能会迷惑你以为成一个数字的立方等于一个数的平方。

经验分享 程序员 微信小程序 职场和发展