N的N次方

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;
}
原文地址:https://www.cnblogs.com/lanaiwanqi/p/10445733.html