ДРУЗЬЯ, ПОМОГИТЕ, ПОЖАЛУЙСТА НАПИСАТЬ В JAVA. Дано натуральное число N. Выведите слово...

+589 голосов
3.3m просмотров

ДРУЗЬЯ, ПОМОГИТЕ, ПОЖАЛУЙСТА НАПИСАТЬ В JAVA. Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, или слово NO в противном случае. Формат входных данных Вводится натуральное число. Формат выходных данных Выведите ответ на задачу. Sample Input 1: 1 Sample Output 1: YES Sample Input 2: 2 Sample Output 2: YES


Информатика | 3.3m просмотров
Дан 1 ответ
+157 голосов

import java.util.Scanner;

class Main {

   public static void main(String [ ] args) {

       // Инициализация нужных переменных

       Scanner sn = new Scanner(System.in);

       double n = sn.nextInt();

       boolean ts = false;

       // До тех пор, пока n > 1 и n != 2, будет находится его корень. Если в один момент корень будет = 2, то выведется "YES"

       while(n > 1) {

           n = Math.sqrt(n);

           if(n == 2) {

               ts = true;

               break;

           }

       }

       if(ts) {

           System.out.print("YES");

       }

       else {

           System.out.print("NO");

       }

   }

}

(40 баллов)
+107

Я, вроде, всё понятно объяснил, поэтому, пожалуйста, поставьте "Лучший ответ"