方法习题记录
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;
}
}
}
}
以上是关于方法习题记录的主要内容,如果未能解决你的问题,请参考以下文章
C语言习题如何在 C 中不使用任何分号打印从 1 到 N 的数字?