Для любых двух строк цифр, 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
Solution.java:23: error: variable c might not have been initialized String d=Integer.toString(c); ^ 1 error
Вы не присваиваете значение c
перед циклом. Компилятор не может знать, будет ли когда-нибудь введен этот цикл.
Вывод: вы можете достичь этого оператора печати без, когда-либо присваивая значение c
.
Можно легко исправить:
int c = 0;
И обратите внимание: вам это нужно, потому что c является локальной переменной в методе. Они не инициализируются по умолчанию (в отличие, например, от полей класса).
Помимо этого: загляните в именование. Ваш код очень сложно понять только потому, что вы слишком часто используете односимвольные имена. Используйте имена, которые что-то значат, которые говорят вам, для чего предназначена переменная.
Сообщение об ошибке сообщает вам, в чем именно заключается проблема, и номер строки.