zoukankan      html  css  js  c++  java
  • XidianOJ 1029 数一的逆袭

    题目描述

    数一是一个穷屌丝兼程序猿,是社会受剥削的底层人物,但是他有一个梦想,就是博得女神的欢心。这天,数一的女神说:"一直活在二次元的屌丝啊,一直活在二进制的程序猿啊,你们这群二货快告诉我这堆2是怎么回事?"女神已经被2的幂次搞晕过去了,她只是想知道2的n次方的最高位和最低位是多少,你能帮数一逆袭女神吗?

    输入

    第一行首先是一个正整数T(T<=100)
    接下来是T行,每行代表一组数据,每组数据仅有一个正整数n(n<=100000)

    输出

    对于每组数据,输出两个整数,以空格分隔,分表表示2^n的最高位和最低位

    --正文

       最低位很好求,因为就是1,2,4,8,6,2,4,8,6循环

       最高位的就是想办法将2^n转换为10^m的形式,利用数学知识得到

      2^n = 10^(nlg2) 

      

    #include <stdio.h>
    #include <math.h> 
    long long firstDigitOfPowOf2(int n)
    {
      double nLog2;
      if (n < 0) return -1;
      if (n == 3) return 8;
      nLog2 = n * log10(2);
      return (long long)pow(10, nLog2 - (int)nLog2);
    }
    int main(){
        int T,time;
        scanf("%d",&T);
        for (time=1;time<=T;time++){
            int n;
            scanf("%d",&n);
            int h = n % 4;
            int low[6] = {6,2,4,8,6,2};
            int level = (int)(n * log10(2)) + 1;
            if (h == 0) h = 4;
            long long a = firstDigitOfPowOf2(n); 
            printf("%lld %d
    ",a,low[h]);
        }
        
        return 0;
    } 
  • 相关阅读:
    Handler使用总结(转)
    LR连接oracle数据库-lr_db_connect
    selenium2(WebDriver)环境搭建
    使用selenium控制滚动条(非整屏body)
    selenium-打开IE浏览器遇到问题记录
    使用re-sign.jar对apk进行重签名
    Robotium-无源码测试
    genymotion不能联网
    SQL 常用脚本
    todolist
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6062868.html
Copyright © 2011-2022 走看看