java典例

1、求斐波那契数列的前40项的和

1 1 2 3 5 8 13 21 34 55 89……
思路:分成四种情况→n<1,n=1,n=2,n>=3分别讨论。n>=3时在已知前两项的和为2的条件下直接与后面的项相加。

package com.xinwei.src;

public class Demo3 {
    public static void Fibonacci(int n) {
        if(n < 1) {
            System.out.println(0);
        }
        if(n == 1) {//n等于1时前一项的和
            System.out.println(1);
        }
        if(n == 2) {//n等于2时前两项的和
            System.out.println(2);
        }
        int f1 = 1, f2 = 1;
        int sum = 2;
        //i大于3也可说n大于3,要求前n项的和就应该由前两项的和加上第三项。此处直接给sum赋值为2即前两项的和
        /*
        1 1 2 3 5 8 13 21 34 55
        根据规律可以看出用第下一个斐波那契数的值替换f2原来的值,那么f2就应等于前两项的和
        f1就应等于替换后的f2的值减去原先的f1
        */
        for(int i=3; i<=n; i++) {//n大于等于3时前n项的和,此处求前40项的和
            f2 = f1 + f2;
            f1 = f2 - f1;
            sum += f2;
        }
        System.out.println(sum);
    }
    public static void main (String []args) {
        int n = 40;
        Fibonacci(n);
    }
}

2、用for循环产生20个随机数(10-20)

▲document.write(Math.random());返回随机数
▲document.write(Math.random()(20-10)+10);返回10-20的随机数
▲document.write(Math.random()
(n-m)+m);返回指定范围的随机数(m-n之间)的公式

package com.xinwei.src;

public class Demo3 {

    public static void random() {
        for(int n=1;n<=20;n++) {
            int i = (int) (Math.random() * (20 - 10) + 10);
            **//Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。
            // 例如:int i=(int)(Math.random()*(3-1)+1),设置一个随机1到3的变量。**
            System.out.println(i);
        }
    }

    public static void main (String []args) {
        random();
    }
}

3、输入一个数字,求他是几位数,并顺序输出,逆序输出

package com.xinwei.src;

import java.util.Scanner;

public class Demo3 {

    public static void goodPoor(String s,int num) {//此处传入一个三位数
        int a[]=new int[3];
        int m=0;
        System.out.println("位数:"+s.length());//直接读取s的长度
        System.out.println("正序:");
        System.out.println(+num);//直接输出原来输入的值
        System.out.println("逆序:");
       while (num>0) {//num大于0成立时进行循环
            int d = num % 10;//第一次求出输入数值的最后一位依此类推
            m = m * 10 + d;//第一次求出逆序之后首位依此类推
            num=num/10;
       }
        System.out.println(+m);
    }
    public static void main (String []args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入num的值:");
        int num = scanner.nextInt();
        String s = String.valueOf(num);//返回String类型的num的值。num现在是int类型,需要想转换成String类型.
        goodPoor(s,num);
    }
}

4、求一个数字的二进制数有几个“1”

思路:设置一个等于0的参数,将输入的数(m)除以2取余如果等于1则参数加1进行循环直到m等于0结束循环。

package com.xinwei.src;

import java.util.Scanner;

public class Demo3 {
    public static void binarySystem(int m) {
        int count = 0;
        while (m!=0){
            if((m%2)==1) {
                count++;
            }
            m=m/2;
        }
        System.out.println(count);
    }
    public static void main (String []args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入m的值:");
        int m = scanner.nextInt();
        binarySystem(m);
    }
}

猜你喜欢

转载自blog.csdn.net/WeiBlogProcedure/article/details/83046812
今日推荐