头歌团队A.Team第1,2题

本关任务:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和。输入n,输出和。

  import java.util.Scanner;
 public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double[] a = new double[sc.nextInt()];
        double sum = 0;
      /************begin*************/
      double m=2,n=1,k;
      for(int i=0;i<a.length;i++){
        a[i]=m/n;
        k=m;
        m=m+n;
        n=k;
      }
      for(int i=0;i<a.length;i++)
      {
        sum+=a[i];
      }
      
     

      



      /***************end**************/
        System.out.println(sum);
    }
}

本关任务:输入3个正整数m,n,k(m,n,k≤100),现有m个A,n个B,k个C,即m+n+k张3种卡片,计算共有

import java.math.BigInteger;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m=sc.nextInt();
        int n=sc.nextInt();
        int k=sc.nextInt();
        BigInteger a=jieCheng(BigInteger.valueOf(m));
        BigInteger b=jieCheng(BigInteger.valueOf(n));
        BigInteger c=jieCheng(BigInteger.valueOf(k));
        BigInteger abc=jieCheng(BigInteger.valueOf(m+n+k));
        System.out.println(abc.divide((a.multiply(b).multiply(c))));
        
        
    }
    //算出大整数的阶乘
    private static BigInteger jieCheng(BigInteger bm) {
        //定义一个阶乘的中间量
        BigInteger sum = BigInteger.ONE;
        for(BigInteger i=BigInteger.ONE;i.compareTo(bm)<=0;i=i.add(BigInteger.ONE)){
            sum=sum.multiply(i);
        }
       
        return sum;
    }
}

多少种排列。(用两种方法:1:用大整数乘除法 2:不用大整数)

猜你喜欢

转载自blog.csdn.net/foxmaxiaoyu/article/details/124561757