编写一个程序,计算一个数字的阶乘,该数字由键盘输入。 本程序应引发下列异常: l 指定的不是数字格式; l 忘记指定用于计算阶乘的数字。 若正确输入一个数字,程序能够计算并输出它的阶乘。 运行的三种情况: (1)未输入参数时: run: 未给出参数! (2)输入参数abc run: 您指定的参数必须为整数 (3)输入参数10 run: 10!=3628800
public class Test6{ public static void main(String [] args){ int fact=1; try{ int num=Integer.parseInt(args[0]); for (int i = 1; i <= num; i++){ fact *= i; } System.out.println(args[0]+"!="+fact); }catch (NumberFormatException ee) { System.out.println("您指定的参数必须为整数"); }catch(ArrayIndexOutOfBoundsException ai){ System.out.println("未给出参数!"); } } }
举一反三
- 编写一个程序,通过用户输入两个数字,并计算这两个数字之和。
- 下列程序接受一个整数n(1<=n<=12),计算n!,然后输出n!中非0数字的个数。其中函数fac( )用于计算阶乘,函数nzero( )用于计算非0数字的个数。 long fac(int n) /* 计算n!并返回 */ { long m=n; while(_________) m*=n; return m; } int nzero(long m) /*计算m中有几个非0数字并返回 */ { int num=_____________; while(m>0L) { if(_________) num++; m/=10L; } return num; /* num是m中非0数字个数 */ } void main( ) { int n; do{ printf(“输入一个1和12之间的整数:”); scanf(“%d”,&n); }while(____________); /*如果输入不正确,则重复输入 */ n<1||n>12 printf(“%d!中有%d个非0数字。\n”,n,_________); }
- 编写一个接收句子并计算字母和数字的程序。假设为程序提供了以下输入: Hello world! 123 然后,输出应该是: 字母10 数字3
- 任意输入一个数,输出其阶乘。
- 定义一个递归函数,接受一个整数参数,并返回该参数的阶乘。如3的阶乘写作3!,等于3*2!,依此类推;而0!被定义为1.通用的计算公式是,如果n大于0,则n!=n*(n-1)!。在程序中对该函数进行测试,程序使用循环让用户输入不同的值,程序将报告这些值得阶乘。
内容
- 0
假如不输入参数n,程序计算 1+2+...+10 的结果 假如输入参数,则按照参数进行累加求和的计算,并输出计算结果。
- 1
编写PL/SQL程序,输入参数n, 计算1!+2!+ 3!+ …+ n! 的值
- 2
编写函数sum(x),求整数x的各位数字之和。在主程序中调用该函数:从键盘输入一非负整数,然后调用sum函数计算各位数字之和并输出结果。【输入形式】输入一个正整数。【输出形式】输出该整数各位数字之和。【样例输入】58【样例输出】13【样例说明】输入整数58,其各位数字之和为:5+8=13。要求:采用函数方式进行编程
- 3
获得用户输入的一个整数N,输出N中所出现不同数字的和。 例如:用户输入123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
- 4
附加题(每小题10分,共20分)[br][/br] 1.编写一个maxn存储过程,通过输入参数传入三个整数,通过输出参数传出三个数的最大数。调用该存储过程,求6,9,2的最大值。 2.编写一个tt存储过程完成计算1+2+3+...+n,其中n通过输入参数传入,运行结果通过输出参数传出。