HDU 1060 Leftmost Digit
2014-05-18 14:44
393 查看
Leftmost Digit
这题来回看过好多遍了,数据太大,完全没思路,老放在那看着又不爽,今天决定搜答案A之HDU <wbr>1060 <wbr>Leftmost <wbr>Digit
用的是对数lg,的确挺巧的HDU <wbr>1060 <wbr>Leftmost <wbr>Digit
直接贴了
后来,看到了一个人的分析,是这样转换的
m=n^n;两边同取对数,得到,log10(m)=n*log10(n);再得到,m=10^(n*log10(n));
然后,对于10的整数次幂,第一位是1,所以,第一位数取决于n*log10(n)的小数部分
总之,log很强大啊,在求一个数的位数上,在将大整数化成范围内的整数上,在指数问题上
这题来回看过好多遍了,数据太大,完全没思路,老放在那看着又不爽,今天决定搜答案A之HDU <wbr>1060 <wbr>Leftmost <wbr>Digit
用的是对数lg,的确挺巧的HDU <wbr>1060 <wbr>Leftmost <wbr>Digit
直接贴了
后来,看到了一个人的分析,是这样转换的
m=n^n;两边同取对数,得到,log10(m)=n*log10(n);再得到,m=10^(n*log10(n));
然后,对于10的整数次幂,第一位是1,所以,第一位数取决于n*log10(n)的小数部分
总之,log很强大啊,在求一个数的位数上,在将大整数化成范围内的整数上,在指数问题上
#include<stdio.h> #include<math.h> int main() { __int64 cas,b,i,d; double a,m,n,c; scanf("%I64d",&cas); for(i=1;i<=cas;i++) { scanf("%lf",&n); a=n*log10(n); b=(__int64)(a); c=a-b; d=(__int64)(pow(10,c)); printf("%I64d\n",d); } return 0; }
/* * hdu 1060--Leftmost Digit * date 2014/5/18 * state */ #include <iostream> #include <cmath> #include <cstdio> using namespace std; int main() { //cout << "Hello world!" << endl; /* int T; cin>>T; for(int i=0;i<T;i++) { double N; cin>>N; double Result; double Ans; Result=N*log10(N); Result-=(int)Result; Ans=pow(10.0,Result); Ans=(int)Ans; cout<<Ans<<endl; } */ __int64 cas,b,i,d;//Int64是有符号 64 位整数数据类型,相当于C++中的long long double a,m,n,c; scanf("%I64d",&cas); for(i=1;i<=cas;i++) { scanf("%lf",&n); a=n*log10(n); b=(__int64)(a); c=a-b; d=(__int64)(pow(10,c)); printf("%I64d\n",d); } return 0; }
相关文章推荐
- hdu 1060 Leftmost Digit
- Leftmost Digit HDU - 1060
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- HDU 1060 Leftmost Digit(数论)
- HDU 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- HDU 1060 Leftmost Digit(数学)
- HDU 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- HDU 1060 Leftmost Digit
- HDU 1060 Leftmost Digit(数学)
- hdu 1060 Leftmost Digit
- Leftmost Digit HDU 1060
- hdu 1060 Leftmost Digit(幂次方最高位)
- hdu 1060 Leftmost Digit
- hdu 1060 Leftmost Digit
- hdu-1060-Leftmost Digit