求2的N次幂的值
描述:

求2的N次幂的值(N最大不超过31,用位运算计算,结果以十六进制进行显示)。

运行时间限制: 无限制
内存限制: 无限制
输入:

数字N

输出:

2的N次方(16进制,需要按照16进制格式进行显示)

样例输入:
5
样例输出:
0x20

解题

直接调用内部函数

import java.util.Scanner;
public class Main{
static int count;
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
int pow = 2<<(n-1); String s = Integer.toHexString(pow);
System.out.println("0x"+s);
} in.close();
}
}

自己实现2的n次方、16进制转换

import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
int n = in.nextInt();
// int pow = 2<<(n-1); // 直接调用内部函数
// String s = Integer.toHexString(pow);
// System.out.println("0x"+s); long x = powan(2,n);
String s2 = longToHex(x);
System.out.println(s2);
} in.close();
}
public static String longToHex(long x){
String[] a = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E"};
StringBuffer sb = new StringBuffer();
while(x>0){
int id = (int)x%16; //求余数,对于数组id
sb.insert(0, a[id]); // 插入到第0个位置
x=x/16; // 更新 }
sb.insert(0, "0x"); return sb.toString();
}
public static long powan(int a,int n){
if(a==0)
return 0;
if(n==0)
return 1;
if(n==1)
return a;
long res = powan(a,n>>1); // 计算一半结果
res*=res; // 偶数还是奇数都要相乘
if((n&1)==1){ // 奇数时候多个 a
res *=a;
}
return res;
}
}

华为上机:求2的N次幂的值的更多相关文章

  1. 华为上机题汇总----java

        以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~  第1题:输入字 ...

  2. 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数

    Description 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数.n由键盘输入. Input 输入一个整数 Output 输出表达式的值 Sample Input 5 Sam ...

  3. 求一个Map中最大的value值,同时列出键,值

    求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){  Map map=new HashMap();  map.p ...

  4. 求集合中选一个数与当前值进行位运算的max

    求集合中选一个数与当前值进行位运算的max 这是一个听来的神仙东西. 先确定一下值域把,大概\(2^{16}\),再大点也可以,但是这里就只是写写,所以无所谓啦. 我们先看看如果暴力求怎么做,位运算需 ...

  5. 求连续出现5次以上的值,并且取第5次所在id

    关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: --测 ...

  6. leetcode-747-Largest Number At Least Twice of Others(求vector的最大值和次大值)

    题目描述: In a given integer array nums, there is always exactly one largest element. Find whether the l ...

  7. 已知空间两点组成的直线求线上某点的Z值

    已知空间两点组成的直线求线上某点的Z值,为什么会有这种看起来比较奇怪的求值需求呢?因为真正三维空间的几何计算是比较麻烦的,很多时候需要投影到二维,再反推到三维空间上去. 复习下空间直线方程:已知空间上 ...

  8. 华为上机测试题(求亮灯数量-java)

    PS:自己写的,自测试OK,供大家参考. /* 一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1.2.3.…n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着.有n个学 ...

  9. 华为上机测试题(水仙花数升级版-java)

    PS:这题满分100,没有做对,大家帮忙看看问题在哪 /* * 题目:水仙花数升级版  * 描述: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1 ...

随机推荐

  1. [转]Linux Ubuntu上架设FTP

    Linux Ubuntu上架设FTP http://www.blogjava.net/stonestyle/articles/369104.html 操作系统:ubuntu (GNU/Linux) 为 ...

  2. Error (10028): Can't resolve multiple constant drivers for net "out2" at shiyan.v(14)解决办法

    //Error(10028):Can't resolve multiple constant drivers for net “ ” at **.v //两个进程里都有同一个条件判断的话,会产生并行信 ...

  3. 二、secureCRT的 使用过程

    准备工作: win7与linux能互相ping通 linux安装了ssh被登陆服务 关闭window 防火墙,,控制面板 下载secureCRT 参考资料:http://zhidao.baidu.co ...

  4. ASCII Table

    ASCII Table ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 0 NUT 32 (space) 64 @ 96 . 1 SOH 33 ! 65 ...

  5. 谈谈 Repository、IUnitOfWork 和 IDbContext 的实践

    谈谈 Repository.IUnitOfWork 和 IDbContext 的实践 上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDbContext ...

  6. MD5值算法原理

    MD5原理说明 一.MD5算法介绍. MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,从名字来看就知道它是从MD3.MD4发展而来的一种加密算法,其主要通过采集文 ...

  7. canvas圆环进度

    CSS: <div class="circle"> <p><span id="loadedNum">0</span&g ...

  8. Google Guava学习笔记——基础工具类Splitter的使用

    另一项经常对字符串的操作就是根据指定的分隔符对字符串进行分隔.我们基本上会使用String.split方法: String testString = "Monday,Tuesday,,Thu ...

  9. 看我是一只IT小小鸟有感

    当我看了<我是一只IT小小鸟>后,有许多的感想.就像许多作者一样,在接触计算机这个专业时都有许多的抱怨,对这个专业的不了解,对这个专业不知道从何学起有深深的无助感,对这个专业在未来的发展有 ...

  10. Codeforces Round #130 (Div. 2) C - Police Station 最短路+dp

    题目链接: http://codeforces.com/problemset/problem/208/C C. Police Station time limit per test:2 seconds ...