您的位置:首页 > 职场人生

算出N的阶乘(N!)一共有多少位

2015-01-28 10:45 1046 查看
这是一道国外Apple公司的面试题,需要高等数学知识

输入任意一个数字N(N>=1) 算出N的阶乘(N!)一共有多少位

比如输入10

10! = 3628800

10的阶乘是 3628800

位数为7

在比如输入25

25! = 15511210043330985984000000

一共有 26位

注意不能把某个数的阶乘算出在统计位数

这里方便测试,给三个阶乘数字例子:

56 !=

710998587804863451854045647463724949736497978881168458687447040000000000000

123! =

1214630436702532967576624324188129585545421708848338231532891816182923589236216766883115696061264020

2170735835221294047782591091570411651472186029519906261646730733907419814952960000000000000000000000

000000

345! =

2421563865079234655870005369198585557012055604025865273483978326703996172017832359317473904791361707

9695531502689473012213820889134885853992818438056445080201482863675240494802269823110125881000284687

3771043764007922001651278559084980475073479554466030939643269870873113942746842373083985029113049697

1971509806802549750490073058021701657327001169846737892429155078087360515473687954260255463555842826

5690302091342359471863508627516511203478353542187151045838267239168928747525890559708487655213488727

5308849685587163850004369891294795278330103405177606883453687157290200153368625343538769148712017766

9920587866285855585726554423099917844925644800000000000000000000000000000000000000000000000000000000

0000000000000000000000000000

python测试脚本(python a.py):

#!/usr/bin/env python

n=999

n = int(raw_input("input your number:"))

print reduce(lambda x,y:x*y, range(1,n+1))

C:

#include <stdio.h>

#include <math.h>

int main(int argc, const char * argv[])

{

int i,n;

double sum=0.0;

scanf("%d",&n);

for(i=2;i<=n;i++)

{

sum+=log10(i);

}

if(n==1)

sum=1;

printf("%d",(int)ceil(sum));

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题 c
相关文章推荐