1.整数反转 120->21 ,-123->-321,会出现溢出的情况。
思路:得到一个数的绝对值,取这个数的最后一位放在新数的第一位;将新数扩大10倍,将该数值从个位变为十位,个位数为传过来的数的倒数第二位,依次类推。
public static void main(String[] args) {
int a=120;
int b=-123;
int c=reserve(a);
int d=reserve(b);
System.out.println(c+" "+d);
}
public static int reserve(int x){
int temp=Math.abs(x);
int result=0;
while (temp>0) {
result=result*10;
result=result+temp%10;
if (result>Integer.MAX_VALUE) {
return 0;
}
temp=temp/10;
}
return x>0?result:-result;
}
结果为21 -321
2.从1-100这100个数中,随机抽出1个数,找出这个数
思路:计算1-100的总和,减去抽去以后数组的总和,得到的数值就是抽出的那个数。
3.从1-100这100个数中,随机抽出2个数,找出这个数
思路:将这98个数创建为一个数组,创建一个1-100个数的数组。将他们下标相同的元素进行比较,如果数值不同则这个数就是缺失的。