您的位置:首页 > 职场人生

黑马程序员——阶乘的两种实现方法及水仙花数的打印

2016-01-02 00:43 375 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
需求:分别使用循环和递归打印5的阶乘

/*
* 两种方式实现求5的阶乘
* 1.循环
* 2.递归
*/
public class Factorial5 {
public static void main(String[] args) {
System.out.println(factorialM1(5));
System.out.println(factorialM2(5));
}

// 写一个使用循环求n的阶乘的方法
public static int factorialM1(int n) {
int y = 1;
for (int x = 1; x <= n; x++) {
y *= x;
}
return y;
}

// 写一个使用递归求n的阶乘的方法
/*
* 分析:
* 	如果n==1,return n;
* 	如果n!=1,return n*jc(n-1)
*/
public static int factorialM2(int n) {
if(n==1){
return n;
}else{
return  n*factorialM2(n-1);
}
}
}
打印水仙花数:指一个三位数,其各位数字的立方和等于该数本身。

/*
* 打印水仙花数
* 所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
* 分析:
* 	3位数指明了范围是100-999,可以使用for来限定范围
* 	分别获取各位上的数,判断该数是不是水仙花数,如果是则打印
* 		获取个位数:n%10
* 		获取十位数:n/10%10
* 		获取百位数:n/100%10
*
*/
public class PrintDaffodil {

public static void main(String[] args) {
for(int x=100;x<1000;x++){
int ge = x%10;
int shi = x/10%10;
int bai = x/100%10;
if(ge*ge*ge+shi*shi*shi+bai*bai*bai==x){
System.out.println(x);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java基础 算法实现