微软曾经笔试题答案


1. 1000!有几位数为什么

f(1000!) = [lg(1000!)] + 1

lg(1000!) = lg(1) + lg(2) ...... +lg(1000)

= lg 函数 从1 到 1000的积分

= 1 + 1/ln10* (1000ln1000 - 1000 + 1)


2.  

F(n)=1 n>8 n<12

F(n)=2 n<2

F(n)=3 n=6

F(n)=4 n=other

使用+ - * /和sign(n)函数组合出F(n)函数
sign(n)=0 n=0
sign(n)=-1 n<0
sign(n)=1 n>0


y = sign(n-8)*sign(12-n)

a = sign(y+1)*sign(y)

z = sign(2-n)

b = sign(z+1)*sign(z)

k = sign(n-6)

c = sign(k+1)*sign(k+1)*sign(k-1)*sign(k-1)

s =  a+b+c

d = sign(s+1)*sign(s+1)*sign(s-1)*sign(s-1)

F(n) = a + b*2 + c*3 + d*4

你可能感兴趣的:(微软曾经笔试题答案)