1237:最左边的一位数
Description
对于给定的正整数N,输出N*N的最左边一位数。
input
输入包含多组测试数据。输入的第一行是一个整数T,代表测试组数。随后输入T组测试数据,每组测试数据包含一个正整数N(1<=N<=1000000000)
output
对于每组测试数据,输出N*N次方的最左边一位数。
sample input
2
3
4
sample output
2
2
HINT
在第一组测试数据中,3*3*3=27,所以最左边一位数是2.
在第二组测试数据中,4*4*4*4=256,所以最左边一位数是2.
source
#include<iostream>
using namespace std;
int main()
{
int T;
cin>>T;
while(T--)
{
int a[17000]={0},N,i,j;
cin>>N;
int temp,count=0;
a[0]=1;
for(i=1;i<=N;i++)
{
for(j=0;j<17000;j++)
{
temp=a[j]*N+count;
count=temp/10;
a[j]=temp%10;
}
}
for( i=16999;i>=0;i--)
{
if(a[i])
{
cout<<a[i]<<endl;
break;
}
}
}
}