方法习题记录

Posted zhouge6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方法习题记录相关的知识,希望对你有一定的参考价值。

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;
             }
         }
     }
}

以上是关于方法习题记录的主要内容,如果未能解决你的问题,请参考以下文章

CSP核心代码片段记录

Laravel:如何在控制器的几种方法中重用代码片段

C语言习题如何在 C 中不使用任何分号打印从 1 到 N 的数字?

记录C#常用的代码片段

Sphinx、reStructuredText 显示/隐藏代码片段

discuz X3.1 源代码阅读,记录代码片段