实验报告
题目二
R019M:输入一个自然数n,求n!,同时统计结果中有多少个0。
1、问题分析。
由题意得,程序应该分为主要的3大步:
1.由用户输入数字,必须是自然数,否则无法计算。
2.对用户输入的自然数n进行阶乘计算。
3.对计算结果统计,统计有多少0
对于第一步,我们可以设置一个条件语句进行判断,当用户输入非自然数时,系统将不对此数进行阶乘计算。
对于第二步的阶乘,我们可以通过循环来实现。
对于第三步,我们可以调用charAt(Position)实现,由于此方法只对字符串可用,我们应先将第二步的运算结果转化为字符串,设置一个跟踪变量,当charAt(Position)为0时,跟踪变量记录。
2、设计方案
由问题分析构建程序:
1.用户输入数字;
2.对用户输入数字进行判断,当对数字去整,与原数相减结果不为零(即数字小数点后有数字)或者当数字小于零时,系统输出此数字非自然数,要求用户重新给变量赋值。
3.当数字为自然数时,设计一个循环,使count=自然数,每一次循环count-1,令result=1,result=result*count;
4.循环结束,result的值便是n!的计算结果,但是result的是int型变量,需要转换为string型变量,此时将result后面加上“”,空格不代表任何意义,即可将int型变量转换为字符串(string)型;
5.建立跟踪变量pointer=0,设计循环,令i=0,在i小于字符串的长度(a.length())情况下,每次循环,i+1,判断charAt(i)处的字符是否等于0,当第i处字符等于零时,跟踪变量+1;
6.输出跟踪变量,pointer即表示运算结果中有几个“0”;
7.设计友好的输入输出界面,提示用户进行输入操作,并对系统输出的结果进行解释。
8.寻找检查程序中的BUG。