一、用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、递归调用时,要有一个边界条件,即至少有一条初始定义是非递归的,另外还要有一个递推通式。

实验三:分别用for、while和do-while循环语句以及递归方法计算n!,并输出算式的更多相关文章

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

    1.for循环语句计算n! 2.while循环语句计算n! 3.do-while语句计算n! 4.递归方法计算n! 5.心得:在此次实验中不知道如何从键盘进行输入,通过百度后找到一种容易理解的输入方法 ...

  2. 实验二 Java基础(数据/表达式、判定/循环语句)

    实验二 (一)实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. ...

  3. C语言基础三(敲打键盘、寻找资料,循环语句)

    有人在学C语言或者其他语言的时候,大家都会说逻辑思维的硬道理,认为没有逻辑思维的人走不远,那么小编这里借助简单的if...else... 英文解释if(如果),else(否则) ----------- ...

  4. 写给.NET开发者的Python教程(三):运算符、条件判断和循环语句

    本节会介绍Python中运算符的用法,以及条件判断和循环语句的使用方法. 运算符 运算符包括算术运算符.赋值运算符.比较运算符.逻辑运算符等内容,大部分用法和C#基本一致,下面我们来看一下: 算数运算 ...

  5. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  6. Java实验三

    20145113 20145102实验三 实验步骤 编码标准 编程标准包含:具有说明性的名字.清晰的表达式.直截了当的控制流.可读的代码和注释,以及在追求这些内容时一致地使用某些规则和惯用法的重要性 ...

  7. Verilog HDL那些事_建模篇笔记(实验三:按键消抖)

    实验三:按键消抖 首先将按键消抖功能分成了两个模块,电平检查模块和10ms延迟模块.电平检测模块用来检测按键信号的变化(是否被按下),10ms延迟模块用来稳定电平检查模块的输入,进而稳定按键信号,防止 ...

  8. 20145229&20145316 《信息安全系统设计基础》实验三 实时系统的移植

    实验封面 实验内容 1.安装ADS(安装文件在00-ads1.2目录下,破解方法00-ads1.2\Crack目录下) 2.安装GIVEIO驱动(安装文件在01-GIVEIO目录下) 3.把整个GIV ...

  9. 20145301&20145321&20145335实验三

    20145301&20145321&20145335实验三 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验三

随机推荐

  1. linux 常用压缩打包和解压命令

    ## zcvf gzip jcvf bzip2 gunzip  tar zxvf  jxvf  

  2. Spark实践 -- 性能优化基础

    性能调优相关的原理讲解.经验总结: 掌握一整套Spark企业级性能调优解决方案:而不只是简单的一些性能调优技巧. 针对写好的spark作业,实施一整套数据倾斜解决方案:实际经验中积累的数据倾斜现象的表 ...

  3. java网络爬虫实现信息的抓取

    转载请注明出处:http://blog.csdn.NET/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点 ...

  4. 2018.09.11 bzoj2208: [Jsoi2010]连通数(bitset+floyd)

    传送门 听说正解是缩点+dfs? 直接bitset优化floyd传递闭包就行了.(尽管时间复杂度是假的O(n3/32)" role="presentation" styl ...

  5. 20155218 2016-2017-2 《Java程序设计》第10周学习总结

    20155218 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 一个IP地址可以对应多个域名,一个域名只能对应一个IP地址. 在网络通讯中,第一次主动发起 ...

  6. 201709013工作日记--Android消息机制HandlerThread

    1.首先来看一个常规的handler用法: 在主线程中建立一个handler: private Handler mHandler = new Handler() { @Override public ...

  7. 20155202 2016-2017-2 《Java程序设计》第6周学习总结

    20155202 2016-2017-2 <Java程序设计>第6周学习总结 教材学习内容总结 输入输出 数据从来源取出:输入串流 java.io.InputStream 写入目的的:输出 ...

  8. SPFA穿越虫洞——负权回路得判断

    poj3259 题目大意:穿越虫洞可以回到过去(时间--)所以能不能让时间倒流呢,就是判断有没有负权回路这次尝试用SPFA算法,也可以复习一下链式前向星 准备工作,队列q,spfa算法得有点就在于这个 ...

  9. 抱SQL SERVER大腿之我爱用视图(对大数据量的管理)

    我们拥有一个巨大的表,两千多万条记录.也许在行家眼里,两千多万条记录顶多算条毛,不过这条毛也忒粗壮了一点:我们的数据库占用的空间已经达到5G多了.不要以为是日志文件在搞鬼,日志文件可以自动收缩的,最多 ...

  10. WPF核心对象模型-类图和解析

    DispatcherObject是根基类,通过继承该类,可以得到访问创建该对象的UI线程的Dispatcher对象的能力.通过Dispatcher对象,可以将代码段合并入该UI线程执行. Depend ...