数一的逆袭

Posted barriery

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数一的逆袭相关的知识,希望对你有一定的参考价值。

数一的逆袭

题目链接:http://acm.xidian.edu.cn/problem.php?id=1029

数学题

2^n的末位是一个以4为周期循环的数列,

求2^n的首位:

设m=2^n,两边取对数得,

logm=nlog2,化简得,

m=10^(nlog2);

设nlog2的整数部分为a,小数部分为b,那么

m=10^a*10^b,

因为10的整数次幂首位是1,即10^a的首位为1,只需看10^b的首位即可,

用pow(10,b)求出首位,注意类型转化时要加上1e-8。

代码如下:

 1 #include<stdio.h>
 2 #include<math.h>
 3 int a[]={2,4,8,6},T,n,s;
 4 int main(){
 5     scanf("%d",&T);
 6     while(T--){
 7         scanf("%d",&n);
 8         s=(int)(pow(10.0,n*log10(2)-(int)(n*log10(2)))+1e-8);
 9         printf("%d %d\n",s,a[(n-1)%4]);
10     }
11 }

 

以上是关于数一的逆袭的主要内容,如果未能解决你的问题,请参考以下文章

HDU 4500 小Q系列故事——屌丝的逆袭

oj 小黑华丽的逆袭机会

[转帖]浪潮openstack的逆袭

创新者的逆袭-观后感

孟尝君的逆袭

一个低危CSRF漏洞的逆袭