用Java编写程序,求n!

 我来答
叶秋雨
2011-09-19 · TA获得超过2077个赞
知道大有可为答主
回答量:2035
采纳率:0%
帮助的人:653万
展开全部
public class Myjiecheng {
public static void main(String[] args) {
String s=JOptionPane.showInputDialog("请输入你要求几的阶乘:");
if(s!=null && s.length()>0){
try{
int n=Integer.parseInt(s);
int sum=1;
for(int i=1;i<=n;i++){
sum=sum*i;
}
JOptionPane.showMessageDialog(null, n+"的阶乘是"+sum);
}catch(Exception e){
JOptionPane.showMessageDialog(null, "输入的不是数字");
}
}

}
追问
你的更离谱 34的阶乘是0
追答
import java.util.Scanner;
public class simple {

public static void main(String[] args) {

int m;
System.out.println("Please input a number:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
m=fac(n);
System.out.println(n+"!="+m);

}

static int fac(int n){
int result=1;
if(n<0||n==1) result=1;
else result=n*fac(n-1);
return result;

}
}
findmeall
2011-09-19 · TA获得超过167个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:148万
展开全部
简单的逻辑,就自儿来吧。锻炼一下自己的思维。。
追问
就是想不到才问的
追答
n! = n * (n-1) * (n-2)....* 1 
如n = 3 : 3!= 3*2*1
递归有点麻烦了。
public int go(int n)
{
int back = 0;
for(int k=1; k <=n ++k)
{
back *= k;
}
return back;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-19
展开全部
public static void main(String[] args){
int n = 100;
int nn = getNn(n);
System.out.println("n! = " + nn);
}

/**
* 递归调用求阶乘
*/
public static int getNn(int n){
if(n == 1) return 1;
return n * getNn(n-1);
}
更多追问追答
追问
递归没学过
追答
就是自己调用自己,你看看方法很简单,递归最后肯定得有跳出,不然会一直递归下去,
if(n == 1) return 1; 就是当n为1时跳出递归
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5949423
2011-09-19 · TA获得超过120个赞
知道答主
回答量:55
采纳率:0%
帮助的人:44万
展开全部
代码如下:public static void main(String[] args) {
try {
Scanner input = new Scanner(System.in);
System.out.println("请输入您要求的阶层数:");
int num = (int)input.nextInt();
int result = 0;
for (int i = 0; i < num; i++) {
result += num*--num;
}
System.out.println("您输入的数的阶层为:"+result);
} catch (Exception e) {
System.err.println("请输入有效数字!");
}
}
我这里是用for循环实现的,也可以使用递归,但怕你理解不了,就没有用.感觉你是有一点java基础的,所以有+=和--符号,希望你能理解,如果不理解可以继续探讨.
更多追问追答
追问
int num = (int)input.nextInt(); 这句什么意思啊
追答
我也是刚看到有人给你写了递归,呵呵.递归有的时候还是很好用的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
塔雨凝05u
2011-09-20
知道答主
回答量:67
采纳率:0%
帮助的人:30.3万
展开全部
import java.math.BigInteger;
import java.util.Scanner;

import sun.security.util.BigInt;

public class Big {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner n = new Scanner(System.in);
System.out.println("请输入需要求的数:");
int i = Integer.parseInt(n.next());
int leng = 0;
BigInteger sum = new BigInteger("1");
for(int j = 1; j<i+1;j++){
BigInteger m = new BigInteger(String.valueOf(j));
sum = sum.multiply(m);
}
System.out.println(sum);
System.out.println(sum.toString().length());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
〖heaven〗a018cd
2011-09-29 · TA获得超过217个赞
知道答主
回答量:80
采纳率:100%
帮助的人:49.1万
展开全部
public class Test {

public static void main(String[] args) {
double a = 1;
int b = 2;
for(int i=0; i<10; i++) {
a *= b;
b++;
System.out.println(i+2+"的阶乘为"+a);
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式