华为上机:求2的N次幂的值
| 求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次幂的值的更多相关文章
- 华为上机题汇总----java
以下华为上机题目都是网上整理得到的,代码都是自己调试过的,由于网上java答案较少,欢迎大家批评指正,也希望对准备华为上机的童鞋们有一点点帮助.在练习的过程中成长,加油!~~ 第1题:输入字 ...
- 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数
Description 写一函数,用来求表达式1+2+3+.....+n的值,并编写主函数.n由键盘输入. Input 输入一个整数 Output 输出表达式的值 Sample Input 5 Sam ...
- 求一个Map中最大的value值,同时列出键,值
求一个Map中最大的value值,同时列出键,值 方法1. public static void main(String[] args){ Map map=new HashMap(); map.p ...
- 求集合中选一个数与当前值进行位运算的max
求集合中选一个数与当前值进行位运算的max 这是一个听来的神仙东西. 先确定一下值域把,大概\(2^{16}\),再大点也可以,但是这里就只是写写,所以无所谓啦. 我们先看看如果暴力求怎么做,位运算需 ...
- 求连续出现5次以上的值,并且取第5次所在id
关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: --测 ...
- 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 ...
- 已知空间两点组成的直线求线上某点的Z值
已知空间两点组成的直线求线上某点的Z值,为什么会有这种看起来比较奇怪的求值需求呢?因为真正三维空间的几何计算是比较麻烦的,很多时候需要投影到二维,再反推到三维空间上去. 复习下空间直线方程:已知空间上 ...
- 华为上机测试题(求亮灯数量-java)
PS:自己写的,自测试OK,供大家参考. /* 一条长廊里依次装有n(1 ≤ n ≤ 65535)盏电灯,从头到尾编号1.2.3.…n-1.n.每盏电灯由一个拉线开关控制.开始,电灯全部关着.有n个学 ...
- 华为上机测试题(水仙花数升级版-java)
PS:这题满分100,没有做对,大家帮忙看看问题在哪 /* * 题目:水仙花数升级版 * 描述: 水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1 ...
随机推荐
- 从零开始学ios开发(一):准备起航
首先介绍一下自己的背景,本人09年研究生毕业,大学就不介绍了,反正是上海的一所211大学,学的是计算机科学与技术专业,学生时代,从事过ACM,没有什么太大的成就,中国的牛人是在太多,我的水平,估计连高 ...
- [笔记]学习HighCharts的使用(不错的web图表插件)
最近有一个小项目需要用到折线图.到处请教了一下,有人给我推荐了highcharts.感觉还不错,就稍微学习下.这里记录一下学习的过程. 网上相关的内容还不少,我就说一下我学习的内容. 看的第一篇文章& ...
- flask页面中Head标签内容为空问题
在使用flask时遇到点问题,以前还没有注意到. 生成页面的时候使用的是模板继承方式,当添加meta标题的时候,本来是添加的base.html模板中的head标签中,但是生成页面后,head中的内容却 ...
- ioctl和unlock_ioctl的区别
今天调一个程序调了半天,发现应用程序的ioctl的cmd参数传送到驱动程序的ioctl发生改变.而根据<linux设备驱动>这个cmd应该是不变的.因为在kernel 2.6.36 中已经 ...
- PB中无法插入ole控件,解决办法
cmd /c for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %icmd /c for %i in (%windir%\system32\ ...
- c++11并发程序设计(1)
第一章:你好 c++的并发世界 1.何为并发 最简单和最基本的并发,是指两个或两个以上的独立活动同时进行. 对于单个处理单元或者核心,这种机器只能在某一时刻执行一个任务,不够它可以每秒进行多次的任务切 ...
- hadoop HA 之 QJM
前言 本文主要通过对hadoop2.2.0集群配置的过程加以梳理,所有的步骤都是通过自己实际测试.文档的结构也是根据自己的实际情况而定,同时也会加入自己在实际过程遇到的问题.搭建环境过程不重要,重要点 ...
- MSSQL Transaction[事务] and Procedure[存储过程]
--事务分三种 --1.显示事务 --我们手动begin transaction ...... commit transaction/rollback transaction --上面这种写法叫做“显 ...
- .net sql 防注入 httpmodule
1 新建一个类,实现IHttpModule接口 using System; using System.Collections.Generic; using System.Linq; using Sys ...
- Linux 前台 和 后台进程 说明
一. 有关进程的几种常用方法 1.1 & 符号 在命令后面加上一个 & 符号,表示该命令放在后台执行,如: [oracle@singledb ~]$ crontab -l 20 17 ...