HDU 1060

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 int main()
 5 {
 6     long long t,n;
 7     cin >> t;
 8     while(t--){
 9         cin >> n;
10         double ans=n*log10(double(n));
11         long long cnt=ans;
12         int c=pow(10.0,ans-cnt);
13         cout << c << endl;
14     }
15 }
时间: 2024-10-13 11:48:19

HDU 1060的相关文章

HDU 1060 [Leftmost Digit]数学

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1060 题目大意:求N^N的最高位数字. 关键思想:换底公式使结果变为10^(N*log10(N)),再除以10^(digits-1)就OK了. 代码如下: //运用换底公式避免幂运算,取整处理. #include <iostream> #include <cmath> using namespace std; int main(){ int T; double N; cin>&g

HDU 1060 Leftmost Digit

http://acm.hdu.edu.cn/showproblem.php?pid=1060 题意: 求N^N的首位数字 解法: 取对数orz 不然肯定溢出 n=10^x*m => lgn=x+lg(m) 注意用long long取整 代码: 0MS  1068K #include <cstdio> #include <cmath> using namespace std; int main() { int t, n; scanf("%d", &t

HDU 1060 Leftmost Digit (数论)

Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13680    Accepted Submission(s): 5239 Problem Description Given a positive integer N, you should output the leftmost digit of N^N.

HDU 1060 Leftmost Digit (数学/大数)

Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 14954    Accepted Submission(s): 5775 Problem Description Given a positive integer N, you should output the leftmost digit of N^N.

HDU 1060 Leftmost Digit (数学log)

题意:给定一个数n,让你求出n的n次方的第一位数. 析:一看这个n快到int极限了,很明显不能直接做,要转化一下.由于这是指数,我们可以把指数拿下来. 也就是取对数,设ans = n ^ n,两边取以10为底对数 lg(ans) = n * lg(10),然后这个整数部分都是10的多次方, 没什么用,也就是说我们要的小数部分,然后再取指数,就OK了.还要注意要用long long因为可能超int了,第一次忘了,WA了. 代码如下: #include <iostream> #include &l

HDU 1568 Fibonacci【求斐波那契数的前4位/递推式】

Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Description 2007年到来了.经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来. 接下来,CodeStar决定要考考他,于是每问他一

a^b的前n位数

假设我们现在需要知道 ab  的后 n 位数或前 n 位数,简单直观的做法就是求出 ab  的值,然后在分别取前 n位或后 n位,不过在 a,b很大的情况下显然是无法存储的.所以,直接求是不可能的了. 让我们先来看看后 n 位如何求?因为我们只要后 n 位,那么我们都知道把 ab  的值模上一个10n 就是所求.根据求模的性质:ab % n = (a%n)b % n;然后用快速幂跑一遍即可. 1 int QuickPow (__int64 a, __int64 b) 2 { 3 __int64

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12

转载:hdu 题目分类 (侵删)

转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056.1058.1061.1070.1076.1089.1090.1091.1092.1093. 1094.1095.1096.1097.1098.1106.1108.1157.116