Ⅰ 在java中,用递归方法计算n的阶乘。
用Java求键盘输入的数的阶乘n。(递归算法)packagejiecheng; importjava.util.*; //导入java.util包中的所有类{ publiclongrep(intn){ longi=0; if(n==0||n==1) i=1;
elsi=n*rep(n-1) returni; } } publicclassJie{ publicstaticvoidmain(String[]args){ intn; //此处定义要输入的数Scanners= newScanner(System.in); //以下三行用于n的值得输入System.out.print( "请输入一个整数:"); n=s.nextInt(); repf= newrep(); System.out.println(n+"!="+f.rep(n)); } }
Ⅱ JAVA程序设计求1-100的阶乘和
亲,java的界面不太受欢迎哦~~大概按你要求做了,看看吧~~
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JEditorPane;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextArea;
publicclassyoyoextendsJFrame{
publicstaticvoidmain(String[]args){
yoyoyo=newyoyo();
yo.show();
}
publicyoyo(){
setDefaultCloseOperation(EXIT_ON_CLOSE);//设置退出时结束程序
setTitle("计算阶层和");
setSize(400,250);
setLocation(100,100);//坐标
//把控件实例化
finalJEditorPaneedit=newJEditorPane();
finalJButtonbutton=newJButton("计算和");
finalJTextAreaarea=newJTextArea(null,"",8,18);
JPanelmyPanel1=newJPanel();//这个是第一行的布局
myPanel1.add(newJLabel("请输入整数n:"),BorderLayout.WEST);
myPanel1.add(edit,BorderLayout.CENTER);
myPanel1.add(button,BorderLayout.EAST);
JPanelmyPanel2=newJPanel();//这个是第二行的布局
myPanel2.add(newJLabel("1至n的阶乘和是:"),BorderLayout.WEST);
myPanel2.add(area);
//把上面的布局加入画布中
this.add(myPanel1,BorderLayout.NORTH);
this.add(myPanel2,BorderLayout.CENTER);
//上面已经把界面做出来了,接下来监听按钮
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventarg0){
intn=Integer.valueOf(edit.getText());//得到edit里的值n
intresult=0;
for(inti=1;i<=n;i++){
inta=1;
for(intj=1;j<=i;j++){
a*=j;
}
result+=a;
}
area.setText(result+"");
}
});
}
}
下面效果图:
Ⅲ java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)
1、首先要理解一下阶乘的公式:
n!=n*(n-1)*(n-2)*....*2*1,5!=5*4*3*2*1
#include//头文件.h在新浪博客中无法显示加上就可以了
intmain()
{
intt=5,i=4;//要是求其他的数的阶乘的话,把t的值改为其他数,
//再把i改为(t-1)就行了
while(i>=1)
{
t=t*i;
i--;
}
printf("5的阶乘结果是:%d ",t);
return0;
}
2、运行结果如下:
Ⅳ 用java求1到30 的阶层和 用方法
阶乘的公式是
n!=n*(n-1)*(n-2)....*2*1
这个公式可以通过一个java的循环来实现,也就是第一种方法。
for(int i=number; i>0;i--)
这个循环在i=0的时候结束, 而阶乘的结果通过result*=i来计算。
public static int compute(int number)
{
int result=1;
for(int i=number;i>0;i--){
result*=i;
}
return result;
}
public static void main(String[] args)
{
System.out.println(compute(30)); //789912231223232323211
}
第二种是通过递归来实现阶乘。
递归就是方法调用自身, 最终通过一个出口来结束程序的调用。
这个出口要保证程序不出现死循环。
在上面的f(x)- n*f(x-1)这里, 出口就可以设置为
if(1==number)
{return 1;}
代码实现:
public static int cur(int number){
if(number!=0){
return number*cur(number-1);
}else return 1;
}
Ⅳ java输入一个数n,计算n的阶乘(5的阶乘=1*2*3*4*5)
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
System.out.println("请输入你需要计算的物简数字:");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
int d = pp(i);
System.out.print(d);
}
public static int pp(int n) {
if (n < 2)
return 1 * n;
else
return n * pp(n - 1);
}
}
int pp(int n)
{
if(n<2)
return 1*n;
else
return n*pp(n-1);
}
这一好销段, 如果n大于2,返回n*pp(n-1)的意思,就是,任何一个N的阶乘等于n*比n小1的数的阶乘,打个比方,比如5的阶乘等于5*(4的阶乘),4的阶乘等罩袜裤于4*(3的阶乘),而1的阶乘,等于1本身。
Ⅵ java求1到N的阶乘的和,N等于一百,初学JAVA,求程序代码
对于一般的比如20以内的阶乘 可以用int 但是你这个太大了
long都不够 用double了 没有限制输出格野逗式 所以是科学计数的 而且用double小数点后会出现误差 这腔颤个知道吧 文件名Sum.java 代码如下:
package Sum;
public class Sum{
public static void main (String[] args) {
double sum=0,sumt,i,j;
for(i=1;i<=100;i++){
for(j=1,sumt=1;j<=i;j++){
sumt*=j;
}
sum+=sumt;
System.out.println(i+" "+sum+" "+sumt);
}
}
}
如果实在要求这么大的阶乘 可以用数组方式解决
给你贴段代码 以前网上某位写的 忘记了 求阶乘的
import java.util.Scanner;
public class nc030{
public static void main(String[] args) throws Exception {
int[] date = new int[100000];
date[1] = 1;
int weishu = 1; // 求出来的值的位数
System.out.println("------用数组解决大数问题---------");
System.out.println("求n!的值");
System.out.print("n=");
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= weishu; j++) {
date[j] = date[j] * i;
}
// 确保除最高位外的每位不大于9
for (int j = 1; j < weishu; j++) {
if (date[j] >= 10) {
date[j + 1] += date[j] / 10;
date[j] = date[j] % 10;
}
}
//确保最高位不大于伍脊败9
while (date[weishu] >= 10) {
weishu++;
date[weishu] += date[weishu - 1] / 10;
date[weishu - 1] = date[weishu - 1] % 10;
}
}
System.out.print(n + "!= ");
for (int k = weishu; k >= 1; k--) {
System.out.print(date[k]);
}
System.out.println("");
}
}
启发一下就好啦~
Ⅶ java语言求n的阶乘
||楼主,系统提示你少括号,让你插入一个括号在结束块,说的很明白啊
你在最后加个括号就没错啦...
publicclassexample2{
staticlongcalcFactorial(intn){
longfactorial=1;
if(n<1||n>20){
System.out.println("输入错误!");
}
for(inti=n;i>=1;i--){
factorial*=i;
}
System.out.println("请输入不超过20的正整数n:");
for(inti=1;i<=n;i++){
System.out.printf("最后结果:%d",calcFactorial(n));
System.out.println();
returnfactorial;
}
publicstaticvoidmain(String[]args){}
}//<-这个是calcFactorial方法的结束括号,你类example2的结束括号呢?
另外你这个方法能否运行起来?主函数应该写在class内,而不是calcFactorial方法内
Ⅷ 高分悬赏:java 语言编写 1到N的阶乘的和
给你写一个简单的空谨如下:
public class test{
public static void main(String args[]){
int i=1;
int j=1;
int sum;
for(;i<=10;i++){
j=j*i;sum=sum+j;}
System.out.println("1~10的阶乘丛察和为"+sum);
}
}
这是一到十渗亏茄的阶乘,用时将10换做成任何即可
Ⅸ Java编程:写出求n的阶乘的方法,并算出1到7的阶乘的和
Java编程:写出求n的阶乘的方法,并算出1到7的阶乘的和方法:
先编写求阶乘的方版法,再通过for循环计算权1到7的阶乘的和。
具体实现:
publicclassTest{
publicstaticvoidmain(String[]args){
intsum=0;//保存阶乘的和
for(inti=1;i<=7;i++)
sum+=factorial(i);
System.out.println(sum);
}
//求阶乘方法,传入一个整数,返回这个整数的阶乘
publicstaticintfactorial(intnum){
intresult=1;
for(inti=1;i<=num;i++){
result*=i;
}
returnresult;
}
}
Ⅹ java计算n的阶乘
int n=8;
int p=n;
for(int i=n;i>1;i--){
p*=i;
}
print("%d\n",p);