一、用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<n)//用来控制最后一个数后面不加*

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

else

System.out.print(i);

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

}

}

二、用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<n)//用来控制最后一个数后面不加*

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

else

System.out.print(i);

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

}

}

三、用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<n)//用来控制最后一个数后面不加*

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

else

System.out.print(i);

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

}

}

四、用递归方法计算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<n)//用来控制最后一个数后面不加*

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);

}

}

五、心得总结与疑惑

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

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

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

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

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

最新文章

  1. 【转】FPGA内部小数计算
  2. 多态与异常处理ppt作业
  3. poj3675 求多边形与圆的面积交
  4. Effective Objective-C 2.0 — 第8条:理解“对象等同性”这一概念
  5. 整合GreyBox放大显示图片
  6. 我的首个MOOC课程《面向对象软件开发实践》
  7. list的使用命令 百度经验保存
  8. C++使用throw抛出异常
  9. Eclipse10大快捷键组合
  10. IIS注册asp.net 4.0
  11. Exams
  12. ASP.NET没有魔法——ASP.NET MVC Razor与View渲染
  13. 网易内推(Android) 拿offer
  14. SpringBoot统一异常处理
  15. SVG之Path
  16. 关于ArrayList.clear()与=null以及new ArrayList&lt;E&gt;()
  17. 全球晶圆代工厂哪家强?2016年Top30名单
  18. AutoCAD二次开发——AutoCAD.NET API开发环境搭建
  19. HDUOJ---hello Kiki
  20. 【Python进阶】无论API怎么变,SDK都可以根据URL实现完全动态的调用

热门文章

  1. Devexpress VCL Build v2013 vol 13.2.5 发布
  2. 2018.09.11 bzoj47214721: [Noip2016]蚯蚓(单调队列)
  3. 2018.09.08 poj1185 炮兵阵地(状压dp)
  4. 2018.08.14 bzoj4241: 历史研究(回滚莫队)
  5. Java转换Json日期/Date(1487053489965+0800)/格式以及js时间格式 Tue Feb 14 2017 14:06:32 GMT+0800
  6. Git客户端命令总结
  7. python编码(二)
  8. 控件无法安装的问题-Unable to execute file
  9. (匹配)Antenna Placement --POJ --3020
  10. Codeforces805 C. Find Amir 2017-05-05 08:41 140人阅读 评论(0) 收藏