1

Тема: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

Дано натуральне число n. Обчислити: sqrt {2 + \ sqrt {2 + ... + \ sqrt {2}}} (всі вирази n коренів)

я пробував так

public static void main(String[] args) {
        static int n = 3;
        double float lastVal = 0;
        while (n-- > 0) {
            lastVal += Math.sqrt(2 + lastVal);
        }
        System.out.println(lastVal);
    }

помилки пише

2

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

static int

double float

https://uk.wikibooks.org/wiki/%D0%9E%D1 … 0%B2%D0%B8

Подякували: leofun011

3

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

до чого це? поясни

4

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

отож

5

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

та шо не так, ти можеш сказати адекватно????

6

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

І які ж помилки пише?
Хоча в пості #1 вам вказали, що не так.
Так змінна double чи float має бути?

Подякували: leofun011

7

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

то подвійний float, як float, тіко в два рази більше

8

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

Десь був такий тип. Але не в джаві точно.

Подякували: leofun011

9

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

Прихований текст

Панове професіонали, коли ви тільки вчили джаву, вами старші колеги теж так анально користувалися (вибачте, ні фаховими порадами, ні муштрою ці ваші відповіді назвати не можу — це просто еквівалент гомосексуалного статевого акту з метою закріплення свого місця в ієрархії)?

До новачка: слід копіювати текст помилки — це дозволить отримати відповідь швидко й по суті.

По суті:
1) Ключове слово static усередині джавівських функцій не використовується — лише безпосередньо всередині класів. На відміну від мови Сі, де можливі статичні змінні всередині функцій (що зберігаються протягом усієї роботи програми, а не створюються при кожному запуску функції). Треба або прибрати ключове слово static, або перемістити оголошення статичної змінної n за межі функції. Сама функція main, проте, є статичною, а тому нестатичних змінних свого класу не бачить — якщо змінну n оголосити в тілі класу як нестатичну, це теж призведе до помилки. Таким чином, має бути або static int n усередині тіла класу, або int n усередині тіла функції — ці варіанти в цій програмі працюватимуть без помилок. Різниця між ними лише в тому, що статична змінна n зберігатиме своє значення й після завершення функції (тому при повторному виклику функції там вже лежатиме не 3, а щось інше), а також буде доступною для інших функцій цього класу, тоді як локальна змінна n припиняє своє існування при завершенні функції й створюється заново при виклику. Оскільки в цій програмі, ймовірно, лише одна функція main, що викликається лише один раз, то вагомих причин для створення статичної змінної нема — до якихось видимих наслідків це не призведе, хіба що може створити незручності при переписуванні коду.

2) у джаві нема типу даних double float — є лише float та double. Слід використовувати один з них. Багатослівні назви типів (назразок short int) можливі в мові Сі, тоді як Java використовує лише однослівні назви примітивних типів.

Подякували: mykolka, leofun012

10

Re: Обчислити sqrt (2 + sqrt (2 ... + sqrt (2)))

Дякую P.Y. !
i не дякую ur-naz

Подякували: FakiNyan1