从微软面试题说开去
23 April 2016
题目
实验室有同学去微软ASG面试,回来后交流了一下面经,发现有题目比较有意思。
题目是这样的:求3的1000万次方的后3位。
其实,这个题目更加一般化的描述是,给定一个数m,求它的n次方的后k位数。
解题思路
测试公式
$$ E = mc2 $$
最朴素的思路
#include <math.h>
#include <stdio.h>
int main()
{
int t, n;
scanf("%d", &t);
while(t--)
{
scanf("%d", &n);
double f = n*log10((double)n);
double decimal = f - floor(f);
int ans = floor(pow(10, decimal));
printf("%d\n", ans);
}
}