编写java程序,求菲薄拉契数列:1,1,2,3,5,8,13…….的第n项,n由键盘输入。 20
展开全部
import java.util.*;
public class NoTest {
/**
* @param args
*/
public static void main(String argv[]) {
while (true) {
System.out.println("请输入n,输入end结束");
Scanner scanner = new Scanner(System.in);
String mm = scanner.next();
if (mm == null || mm.equals("")) {
System.out.println("输入为空!");
continue;
}else if(mm.equals("end")){
break;
}
int i;
try{
i=Integer.parseInt(mm);
int index= new NoTest().getIndexN(i);
System.out.println("菲薄拉契数列,第"+i+"="+index);
}catch (Exception e) {
System.out.println("请输入数字");
}
}
}
public Integer getIndexN(int n){
int indexn;
if(n<=2){
indexn=1;
}else{
indexn=getIndexN(n-1)+getIndexN(n-2);
}
return indexn;
}
}
public class NoTest {
/**
* @param args
*/
public static void main(String argv[]) {
while (true) {
System.out.println("请输入n,输入end结束");
Scanner scanner = new Scanner(System.in);
String mm = scanner.next();
if (mm == null || mm.equals("")) {
System.out.println("输入为空!");
continue;
}else if(mm.equals("end")){
break;
}
int i;
try{
i=Integer.parseInt(mm);
int index= new NoTest().getIndexN(i);
System.out.println("菲薄拉契数列,第"+i+"="+index);
}catch (Exception e) {
System.out.println("请输入数字");
}
}
}
public Integer getIndexN(int n){
int indexn;
if(n<=2){
indexn=1;
}else{
indexn=getIndexN(n-1)+getIndexN(n-2);
}
return indexn;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
推荐的答案不满足你的要求:从键盘输入n,代码如下:
import java.util.*;
public class Test {
public static int f(int n) {
if(n>2) {
return f(n-1)+f(n-2);
}
else {
return 1;
}
}
public static void main(String args[]) {
System.out.print("请输入n:");
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
System.out.println(f(n));
}
}
import java.util.*;
public class Test {
public static int f(int n) {
if(n>2) {
return f(n-1)+f(n-2);
}
else {
return 1;
}
}
public static void main(String args[]) {
System.out.print("请输入n:");
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
System.out.println(f(n));
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-12-19
展开全部
//菲薄拉起数列
//F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
public class Test1{
public static void main(String[] args){
//1,1,2,3,5,8,13,21,34,55,89,
int f1=1,f2=1;
System.out.print(f1+","+f2+",");
for(int i=0;i<9;i++){
int f=f1+f2;
System.out.print(f+",");
f1=f2;
f2=f;
}
}
}
//F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)
public class Test1{
public static void main(String[] args){
//1,1,2,3,5,8,13,21,34,55,89,
int f1=1,f2=1;
System.out.print(f1+","+f2+",");
for(int i=0;i<9;i++){
int f=f1+f2;
System.out.print(f+",");
f1=f2;
f2=f;
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
递归
public class A
{
public int add(int n){
if(n>2){
return (add(n-1)+add(n-2));
}else{
return 1;
}
}
public static void main(String[] args){
System.out.println(new A().add(7));
}
}
public class A
{
public int add(int n){
if(n>2){
return (add(n-1)+add(n-2));
}else{
return 1;
}
}
public static void main(String[] args){
System.out.println(new A().add(7));
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
菲薄拉契数列其实就是除了第12项,后面的每项都是前2项的和,递归下就好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询