Серия слов Фибоначчи в Java

Для любых двух строк цифр, A и B, мы определяем Fa,b как последовательность (A, B, AB, BAB, ABBAB,...), в которой каждый член является конкатенацией двух предыдущих.

Далее определим Da,b(n) быть n-й цифрой в первом члене Fa,b, которая содержит не менее

n цифр.

Пример:

Пусть А=1415926535 ,В=8979323846 . Мы хотим найти Da,b(35)

, сказать.

Первые несколько членов Fa,b:

1415926535 8979323846 141592653589793233846 897932384614159265358979323846 14159265358979323846897932384614159265358979323846

Тогда Da,b(35) — это 35-я цифра пятого слагаемого, т. е.

9.

Тебе дали q утраивает (A,B,n). Для всех них найти

Да,б(н).

Формат ввода

Первая строка каждого тестового файла содержит одно целое число q — количество троек. Затем следуют q строк, каждая из которых содержит две строки десятичных цифр a и b и натуральное число n.

Формат вывода

Выведите ровно q строки с одной десятичной цифрой в каждой: значение Da,b(n) для соответствующей тройки.

public void fibo(String a,String b,int n){
    String n1=Integer.toString(n);
    char n2;
    n2=n1.charAt(1);
    int n3=Character.getNumericValue(n2);
    String c;
    for(int i=2;i<n3;i++){
        c=a+b;
        System.out.printf(c+" ");
        a=b;
        b=c;
    }

    System.out.println(c.charAt(n));
}

Скомпилировать сообщение

Solution.java: 26: ошибка: переменная c могла быть не инициализирована System.out.println(c.charAt(n)); ^ 1 ошибка

Выход из состояния

1

Сообщение об ошибке сообщает вам, в чем именно заключается проблема, и номер строки.

Steve Smith 28.05.2019 17:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
1
147
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Solution.java:23: error: variable c might not have been initialized String d=Integer.toString(c); ^ 1 error

Вы не присваиваете значение c перед циклом. Компилятор не может знать, будет ли когда-нибудь введен этот цикл.

Вывод: вы можете достичь этого оператора печати без, когда-либо присваивая значение c.

Можно легко исправить:

int c = 0;

И обратите внимание: вам это нужно, потому что c является локальной переменной в методе. Они не инициализируются по умолчанию (в отличие, например, от полей класса).

Помимо этого: загляните в именование. Ваш код очень сложно понять только потому, что вы слишком часто используете односимвольные имена. Используйте имена, которые что-то значат, которые говорят вам, для чего предназначена переменная.

Другие вопросы по теме