1237: 最左边一位数
Time Limit: 1 Sec Memory Limit: 128 MBDescription
对于给定的正整数N,输出N^N的最左边一位数。
Input
输入包含多组测试数据。输入的第一行是一个整数T,代表测试组数。随后输入T组测试数据,每组测试数据包含一个正整数N ( 1< = N< = 1,000,000,000 ).
Output
对于每组测试数据,输出N^N次方的最左边一位数。
Sample Input
234
Sample Output
22
HINT
在第一组测试数据中,3 * 3 * 3 = 27,所以最左边一位数是2.
在第二组测试数据中,4 * 4 * 4 * 4 = 256,所以最左边一位数是2.
Source
算法>--- N^N=N*log10(N);
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double m,N;
int T;
cin>>T;
while(T)
{
cin>>N;
m=N*log10(N);
//cout<<"m>--"<<m<<endl;
long long int x=m;
//cout<<"x>--"<<x<<endl;
m=m-x;
//cout<<"m>--"<<m<<endl;
m=pow(10,m);
//cout<<"m>--"<<m<<endl;
x=m;
cout<<x<<endl;
T--;
}
return 0;
}