C语言 实现N阶乘

N是小于100的任意输入数值

这种题目只能用数组存放结果,考查的是你对循环的思路和判断的认知。说一下思路吧,希望对你有帮助。有帮助就给分哈~1、设定一个存放结果的数组,估计这个结果也不会超过1000位,暂定a【1000】2、给这个数组赋初值,全部为0,但是a【999】=1,读入N的值3、开始i=1;i<N+1;i++次循环 4、从末尾开始乘i 5、判断a【1000】的每一位,如果大于10,就用这一位/10,所得到的结果进位,所得到的余数留在此位6、循环结束,再次利用循环,判断a【1000】前面没有用到的0,当找到其中一位a【n】不等于0时,跳出循环7、从这个n开始,输出a【1000】剩余的部分8、结束
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-27
思路提供:仅仅作为参考! 递归算法: long JieSheng(int n){ if(n<0) { //提示错误 return -1; } else if(n==1 || n==0) return 1; else{ return (long)( n*JieSheng(n-1);} } 如果是记录这N个数的阶乘 那么 再定义一个函数long[] JieSheng (int n){long[] sum = new long[n]; for(int i= 0;i < n;i++0){ sum[i] = JieSheng[i+1];} return sum;}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网