2018-04-03 17:46
爱奇艺_技术产品中心_Java开发 0 点赞 评论 收藏
分享
投递爱奇艺等公司10个岗位 >
0 点赞 评论 收藏
分享
青檬寧:public static String DecimaltoBinary(int num){
char[] ch = Integer.toBinaryString(num).toCharArray();
String res = "";
if(ch.length == 1 && ch[0] == '0'){
return "0";
}
//从左到右记录幂的位置
int temp = ch.length-1;
String s = "";
for (int i = 0; i < ch.length; i++) {
if (ch[i] == '1') {
if(temp > 2) {
s = DecimaltoBinary(temp);
}else{
s = temp+"";
}
if(res == "") {
res += "2(" + s + ")";
} else {
res += "+" + "2(" + s +
")";
}
}
temp--;
}
return res;
}
就一个递归调用,没有多判断负数,上面有大神已经判断了!不过没想过复杂度的问题,能力不够查看图片
0 点赞 评论 收藏
分享
2016-11-15 10:13
爱奇艺_技术产品中心_Java开发 Bye2016:import java.util.Arrays;
import java.util.Scanner;
/**
* 1.把所有[x, y]区间的值 + z
* 2.遍历最大值位置就可以
* @author
*
*/
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int arr[] = new int[n]; //用来存放所有数字
while (cin.hasNextInt()) {
int x = cin.nextInt();
int y = cin.nextInt();
int z = cin.nextInt();
if(x == -1 && y == -1 && z == -1) {
break;
}
for(int i = x; i <= y; i++) {
arr[i] += z; //数组添加上相应的z
}
}
System.out.println(Arrays.toString(arr));
int positionStart = 0;
int positionEnd = 0;
int temp = arr[0];
for(int i = 0; i < n; i++) {
if(arr[i] > temp) {
temp = arr[i];
positionStart = i;
}
if(arr[i] == temp) {
temp = arr[i];
positionEnd = i;
}
}
if(positionStart == positionEnd) {
System.out.println(positionStart);
} else {
System.out.println(positionStart + " " + positionEnd);
}
}
}
0 点赞 评论 收藏
分享
2016-05-15 19:01
爱奇艺_技术产品中心_Java开发 Horanol:float a = 1.0f
不是强转,1.0默认是double类型的,1.0f才表示float类型,这个和c#语言是一样的。纯数字默认是int型,所以long a =
123中的123是int型,赋值给一个long型。而long a = 11111111113L后面的数字超过了int型,所以要加L表示这是long型的数字
0 点赞 评论 收藏
分享
关注他的用户也关注了: