首页 > 其他 > 详细

方法习题记录

时间:2020-01-13 23:58:54      阅读:178      评论:0      收藏:0      [点我收藏+]

1、1的阶乘到20的阶乘之和

/**
 * 1的阶乘到20的阶乘之和
 * @author  努力Coding
 * @version    第一种方法
 * @data    2020年1月12日 
 */
public class Factorial {

    public static void main(String[] args) {
        long sum = 0;//所有阶乘之和
        for(int i = 1; i <= 20; i++) {//1的阶乘到20的阶乘
            sum += factorial(i);//调用方法参与求和
        }
        System.out.println("所有阶乘和为:" + sum);
    }
    
    /**
     * 阶乘方法
     * @param n
     * @return sum(每个阶乘之积)
     */
    public static long factorial(int n) {
        long integral = 1;//每个阶乘之积
        for(int i = 1; i <= n; i++) {//单独的每个阶乘的积
            integral = integral * i;
        }
        return integral;
    }
}

/**
 * 1的阶乘到20的阶乘之和
 * @author  努力Coding
 * @version    第二种方法:递归
 * @data    2020年1月12日 
 */
public class Factorial {

    public static void main(String[] args) {
    long sum = 0;
    for(long i = 1; i <= 20; i++) {
        sum += getFactorial(i);
    }
    System.out.println(sum);
    }
    
    public static long getFactorial(long num) {
    if(num == 1) {
        return 1;
    }
    num *= getFactorial(num - 1);
    return num;
    }
}

2、100之内的素数

/**
 * 100之内的素数(除了1之外,只能被1和自身整除的)
 * @author  努力Coding
 * @version 
 * @data    2020年1月12日 
 */
public class PrimeNum {

    public static void main(String[] args) {
        System.out.println("100以内素数有:" );
        primeNum();//调用判断100以内素数的方法
    }
    
    /**
     * 判断100以内素数的方法
     */
    public static void primeNum() {
        int num1, num2;//被除数num1和除数num2
        for(num1 = 2; num1 <= 100; num1++) {//被除数num1
            for(num2 = 2; num2 < num1; num2++) {//除数num2
                if(num1 % num2 == 0) {//如果能被除了1和自身的数整除,就不是素数,跳出当前循环
                    break;
                }
            }
            if(num1 == num2) {//能被1和自身整除,就是素数,打印出来
                System.out.print(num1 + ",");
            }
        }
    }
}

3、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

/**
 * 海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,
 * 这只猴子把多的一个扔入海中,拿走了一份。
 * 第二只猴子把剩下的桃子又平均分成五份,又多了一个,
 * 它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,
 * 问海滩上原来最少有多少个桃子?
 * @author  努力Coding
 * @version
 * @data    2020年1月12日 
 */
public class Peach {

    public static void main(String[] args) {
         dividePeach();//调用分桃子的方法
    }
     
     
    /**
     * 分桃子
     */
     public static void dividePeach(){
         int count;//次数
         for(int i = 1; i < 10000; i++){
             int num = i;//桃子数从1开始猜
             for(count = 1; count <= 5; count++){//判断是否满足分五次每次都多1
                 if((num - 1) % 5 == 0){
                     num = (num - 1) / 5  * 4;
                 }else{
                     break;
                 }
             }
             if(count > 5){//符合条件了 就打印输出 跳出循环
                 System.out.println("至少" + i + "个桃子");
                 break;
             }
         }
     }
}

方法习题记录

原文:https://www.cnblogs.com/Zhouge6/p/12189798.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!