java分别使用for循环语句计算n!_实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式...

一、用for循环计算n!

package for_package;

import java.util.*;//导入含有输入类的包

public class for_class {

/**

* @param args

*/

public static void main(String[] args) {//void代表不会有返回值,参数也可以不用写

// TODO Auto-generated method stub

int i;

int fact=1;

int n;

Scanner in=new Scanner(System.in);//使用Scanner类定义对象

System.out.println("请输入n:");

n=in.nextInt();

for(i=1;i<=n;i++)

{

fact=fact*i;

}

for(i=1;i<=n;i++)

if(i

System.out.print(i+"*");//记得加+

else

System.out.print(i);

System.out.print("="+fact);

}

}

49855acc3d3727176630439d3ab0dbc6.png

二、用while循环计算n!

package while_package;

import java.util.*;//导入含有输入类的包

public class while_class {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int i=1;

int fact=1;

int n;

Scanner in=new Scanner(System.in);//使用Scanner类定义对象

System.out.println("请输入n:");

n=in.nextInt();

while(i<=n)

{

fact=fact*i;

i=i+1;

}

for(i=1;i<=n;i++)

if(i

System.out.print(i+"*");//记得加+

else

System.out.print(i);

System.out.print("="+fact);

}

}

36dcef3ac9f58101d78490ef930a1361.png

三、用do-while循环计算n!

package do_while_package;

import java.util.*;//导入含有输入类的包

public class do_while_class {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int i=1;

int fact=1;

int n;

Scanner in=new Scanner(System.in);//使用Scanner类定义对象

System.out.println("请输入n:");

n=in.nextInt();

do

{

fact=fact*i;

i=i+1;

}while(i<=n);//do-while语句后面有分号

for(i=1;i<=n;i++)

if(i

System.out.print(i+"*");//记得加+

else

System.out.print(i);

System.out.print("="+fact);

}

}

575df4a733ac4d89b21ad60bafa8a722.png

四、用递归方法计算n!

package digui_package;

import java.util.*;//导入含有输入类的包

public class digui_class {

public static void main(String[] args) {

int i;

int fact=1;

int n;

Scanner in=new Scanner(System.in);//使用Scanner类定义对象

System.out.println("请输入n:");

n=in.nextInt();

fact=digui(n); //不能对类型 digui_class 中的非静态方法 digui(int)进行静态引用,即

for(i=1;i<=n;i++)

if(i

System.out.print(i+"*");//记得加+

else

System.out.print(i);

System.out.print("="+fact);

}

public static int digui(int n)

{

if(n==0||n==1)

return 1;

return n*digui(n-1);

}

}

db9281315cee699e9bbb56d91d571d13.png

五、心得总结与疑惑

1、Java中想要从键盘上输入一个数时,要导入含有输入类的包,即import java.util.*;,在主函数中,使用Scanner类定义对象,即Scanner in=newScanner(System.in);n=in.nextInt();即可。

2、public static void main(String[] args) void代表不会有返回值,参数也可以不用写。

3、do-while语句后面有分号。

4、格式控制输出算式时,用if语句来控制最后一个数后面不加*。

5、递归调用时,要有一个边界条件,即至少有一条初始定义是非递归的,另外还要有一个递推通式。

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值