N的N次方
题目描述
现给你一个正整数N,请问N^N的最左边的数字是什么?
输入
输入包含多组测试数据。每组输入一个正整数N(N<=1000000)。
输出
对于每组输入,输出N^N的最左边的数字。
样例输入
3
4
样例输出
2
2
题意概括
输入一个N,问一个N^N最左边的数字,也就是最高位。
解题思路
水题,利用double自带的保留精度的问题,每次相乘都是这个数小于10,最后只输出个位。
代码如下:
#include<stdio.h>
int main ()
{
double n,m;
int i,j;
while(~scanf("%lf",&n)){
m=1;
for(i=0;i<n;i++){
m*=n;
while(m>=10)
m/=10;
}
printf("%d
",(int)m);
}
return 0;
}