注册 登录
编程论坛 JAVA论坛

java自学之初级篇:求老师知道一下作业代码是否可改进

jscs_he 发布于 2016-03-23 14:35, 2102 次点击
import java.util.Scanner;
class zuoye3
{    /*
        已知:faibonacci(斐波那契)数列的以前几个数分辨是0,1,1,2,3,5.8.13.21.....
        从第三项开始每一项都等于前两项的和
        输入一个数n 编程求出此数列的前n项的和.
        思路:
            从第三项开始每一项都等于前面两项的和
            假设 用循环定义        n=3  sum=a+b   
                                n=4  此时的a应该是b b应该是sum
                                也是 a=b b=sum 的循环  
            
                                
    */
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
        System.out.print("请输入一个数字:");
        int a =0;
        int b =1;
        int sum = 0;

        int n = s.nextInt();
            for (int i = 2;i<n ;i++ )//注意:因为是从第三项开始的,所以当i=2的时候 a才等于0 b才等于1;
            {
                sum= a + b;
                a = b; //此时的a 等于 n-2项
                b = sum; //此时的c 等于 n-1项
            }
            System.out.println(sum);
    }
}
2 回复
#2
grmmylbs2016-03-23 14:58
要求前n项的和,不是第n项的值:

import java.util.Scanner;
public class zuoye3
 {    /*
         已知:faibonacci(斐波那契)数列的以前几个数分辨是0,1,1,2,3,5.8.13.21.....
         从第三项开始每一项都等于前两项的和
        输入一个数n 编程求出此数列的前n项的和.
         思路:
             从第三项开始每一项都等于前面两项的和
            假设 用循环定义        n=3  sum=a+b   
                                 n=4  此时的a应该是b b应该是sum
                                 也是 a=b b=sum 的循环  
            
                                 
     */
     public static void main(String[] args)
     {
         Scanner s = new Scanner(System.in);
         System.out.print("请输入一个数字:");
         int a =0;
         int b =1;
         int sum = 0;
         int counts = 0;

         int n = s.nextInt();
             for (int i = 2;i<=n ;i++ )//注意:因为是从第三项开始的,所以当i=2的时候 a才等于0 b才等于1;
             {
                 sum = (a + b);
                 counts += b;
                 a = b; //此时的a 等于 n-2项
                 b = sum; //此时的c 等于 n-1项                 
            }
             System.out.println(counts);
     }
 }
#3
jscs_he2016-03-23 15:02
回复 2楼 grmmylbs
感觉比我写的复杂了!!!
1