原题目如下:
1.1到99随机产生20个数,并以这20个数生成以10的倍数为根节点的树,1-10的数在根节点10下,11到 20的数在根节点20下,依次类推。打印输出如下图:
+10
----2
----3
----8
...........
+30
----32
----39
...........
+90
----91
----932、将4个字节的数组转化为int
public static int getInt(byte _b1, byte _b2, byte _b3, byte _b4) {
}
1.1到99随机产生20个数,并以这20个数生成以10的倍数为根节点的树,1-10的数在根节点10下,11到 20的数在根节点20下,依次类推。打印输出如下图:
+10
----2
----3
----8
...........
+30
----32
----39
...........
+90
----91
----932、将4个字节的数组转化为int
public static int getInt(byte _b1, byte _b2, byte _b3, byte _b4) {
}
能给出代码吗? 50全给了
import java.util.Arrays;
public class tree
{
public static void main(String args[])
{
int[] tree=new int[20];
for(int i=0;i<20;i++){
tree[i]=1+(int)(Math.random()*98);
}
Arrays.sort(tree);
int level=10;
boolean write=true;
for(int j=0;j<20;j++){
if(tree[j]<=level){
if(write){
System.out.println("+"+level);
write=false;
}
System.out.println("----"+tree[j]);
}else{
write=true;
level+=10;
j--;
}
}
}
}
1-10的数在根节点10下,11到 20的数在根节点20下,依次类推。打印输出如下图:
+10
----2
----3
----8
...........
+30
----32
----39
...........
+90
----91
----93 32、39应该摆在40下吧,91、93应该摆在100下吧
import java.util.Arrays;
public class RandonNum
{
public static void main(String args[])
{
int[] tree=new int[20];
for(int i=0;i<20;i++){
tree[i]=1+(int)(Math.random()*98);
}
Arrays.sort(tree);
for(int k=0;k<20;k++){
System.out.println("+"+tree[k]);;
}
System.out.println("-----------------------------------");
int level=0;
int level_num = 0;
int p = 0;
for(int j=0;j<20;j++){
if(tree[j]<=10){
if(p == 0){
System.out.println("+"+ 10);
p++;
}
System.out.println("----"+tree[j]);
}else{
if((int)(tree[j] / 10) > level_num){
level = (int)(tree[j] / 10);
System.out.println("+"+ (level + 1)*10);
level_num = level;
}
System.out.println("----"+tree[j]);
}
}
}
}
public void createRandom() {
Random r = new Random();
List<Integer> rList = new ArrayList<Integer>();
int temp = -1;
while (rList.size() < 20) {
temp = r.nextInt(99) + 1;
if (!rList.contains(temp)) {
rList.add(temp);
}
}
Object[] nums = rList.toArray();
Arrays.sort(nums);
boolean tag=true;
for (int i = 0, j = 10; i < nums.length; i++) {
if(Integer.parseInt(nums[i].toString())<=j){
if(tag){
System.out.println("+"+j);
tag=false;
}
System.out.println("----"+nums[i]);
}else{
tag=true;
j+=10;
i--;
}
}
}2.
public static int getInt(byte _b1, byte _b2, byte _b3, byte _b4){
return ((_b1&0x000000ff)<<24)|((_b2&0x000000ff)<<16)|((_b3&0x000000ff)<<8)|(_b4&0x000000ff);
}
for(int i=0; i<builder.length; i++)
builder[i] = new StringBuilder();
for(int i=0; i<20; i++) {
int rand = (int)(Math.random()*99) + 1;
builder[rand/10].append("\n---" + rand);
}
for(int i=0; i<builder.length; i++)
System.out.println("+" + (i+1)*10 + builder[i]);
第2题不太明白
import java.util.Arrays;
import java.util.Random;
public class First { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr=new int[20];
for(int i=0;i<arr.length;i++){
arr[i]=new Random().nextInt(99)+1;
}
int sum=0;
for(int i=0;i<arr.length;i++){
sum+=arr[i];
}
Arrays.sort(arr);
for(int i=0;i<arr.length;i++){
int base=arr[i]/10*10+10;
System.out.println("+"+base);
while(i<arr.length&&(arr[i]/10*10+10)==base){
System.out.println("----"+arr[i]);
i++;
}
}
}
}
2.好奇的问你byte是多少位的。。怎么个对应法啊难道是16进制那样的?
嘿嘿自己搞吧乘以2的多少次方。。
话说当年我被别人扔出来的时候的题目啊555555555555