public class Fibonacci {
static long fibo(int n) {
if (n < 2) {
return n;
} else {
return fibo(n - 1) + fibo(n - 2);
}
}
public static void main
(String[] args
) {
// teste do programa. Imprime os 30 primeiros termos
for (int i = 0; i < 30; i++) {
System.
out.
print("(" + i
+ "):" + Fibonacci.
fibo(i
) + "\t"); }
}
}
cHVibGljIGNsYXNzIEZpYm9uYWNjaSB7CiAKICAgIHN0YXRpYyBsb25nIGZpYm8oaW50IG4pIHsKICAgICAgICBpZiAobiA8IDIpIHsKICAgICAgICAgICAgcmV0dXJuIG47CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZpYm8obiAtIDEpICsgZmlibyhuIC0gMik7CiAgICAgICAgfQogICAgfQogCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7ICAgCgkKCS8vIHRlc3RlIGRvIHByb2dyYW1hLiBJbXByaW1lIG9zIDMwIHByaW1laXJvcyB0ZXJtb3MgICAgICAgCglmb3IgKGludCBpID0gMDsgaSA8IDMwOyBpKyspIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludCgiKCIgKyBpICsgIik6IiArIEZpYm9uYWNjaS5maWJvKGkpICsgIlx0Iik7CiAgICAgICAgfQogCiAgICB9CiAKfQ==