杭电ACM 1060

来源:百度知道 编辑:UC知道 时间:2024/06/12 10:37:46
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1060
这是我写的程序,在我自己的机上运行没问题,为什么一交上去就“WA”呢?

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
int n, i, num;
double decimal, temp;
cin >> num;
for(i=0;i<num;i++)
{
cin >> n;
decimal = n * log10((double)n);
temp = decimal - (int)decimal;
decimal = pow((double)10, temp);
cout << (int)decimal << endl;
}
return 0;
}
请大家帮一下忙,先谢谢了。

输入最大值1000000000 输出0
肯定错啦。最左位怎么可能是0。
应该是浮点数运算溢出。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
double n,t,ans,temp;
int test;
scanf("%d",&test);
while(test--)
{
cin>>n;
t=n*log10(n);
t=floor(t);
ans=n/(pow((double)10,t/n));
ans=pow(ans,n);
cout<<(int)ans<<endl;
}
return 0;

}

这是我写的,你参考下