在线用户    站点地图 技术论坛 文档中心 站点导航 资源下载 语言参考 教程专题 站点统计 业务项目 使用帮助
您的位置
MSDN参考新加了CSS2参考,全中文,制作精良。245k下载。           新加了sxf_sxf推荐的"动态网页专家指导" 下载!          新加了lsg2002lsg推荐的"ASP.NET高级编程(PDF)" 下载!          新加了DHTML代码预览!!,功能强大哦!欢迎试用          新加了网友lincong为大家提供的SQL Server 2000 程序员指南,有点大,但同时也就说明内容全咯!           新加了网友ibra为大家提供的北大的JAVA课件,很适合初学者入门           新加了一个java的连接缓冲池代码示例           新加了人月神话电子版下载!软件工程巨著哦~~           更新了评分标准,引入了“专家分”概念,相信可以更好的激励大家的学习!详情请看“使用帮助”           新加了由网友GGG提供的“IIS超级管理手册”,值得一看哦!(虽然我没看过 :P )           新加了“英雄榜”,欢迎测试!           “无组件上传·从原理剖析到实践”已经全部完成,源码全部开放,有兴趣的朋友请到文档中心一探究竟。  您的位置  首页>技术论坛>JAVA>F0128174 在同一窗口中打开页面中的链接 在新窗口中打开页面中的链接 将ASPCHINA设为首页 将ASPCHINA加入书签    
 LOGIN HERE
用户:
密码: 忘记密码
记住密码 用户注册 游客进入

论坛首页
|--web开发
   |--ASP
   |--JSP
   |--ASP.net
   |--DHTML
   |--RUBY
|--软件开发
   |--C++
      |--Code here
   |--JAVA
   |--VB
   |--Delphi
   |--XML
|--.net技术
   |--C#
   |--VB.net
|--Yup开发组
|--站务&投诉
   |--站长专区
|--硬件&网络
|--休息室
|--数据库技术
 进入精华区 我要发言



 java面试题2(编程)back to JAVA forum  
作者:xfv3k,3级分数:20
日期:2004/8/16 1:51:00类别:JAVA, 技术问题
回复:15次浏览:2078次
状态:尚未结贴

6.程序:使用最高效率的方法写出JAVA中字符串的倒序转换(例如:字符串abcefg转换为gfecba)
7.程序:计算当参数为n(n很大)时的值1-2+3-4+5-6+7......n
8.程序:写一方法把一维数组中的数据按照顺序转换为2维数组的数据。
(例如:int[] array={0,1,2,3,4,5,6,7,8,9,10,11};
顺序转换为int[3][4]:{0,1,2},{3,4,5},{6,7,8},{9,10,11}的数组)
9.程序:1,2 ......19,20,要求随机产生不同的顺序的这个序列。
10.程序:一球从m米高空坠落,每次到地面后弹起的距离是前一次坠落的一半。计算球运行的路程(写出实现思想和程序)
11.程序:用JAVA实现一个存放整形数字的栈(使用数组或者Vector实现)

reply[F0128174]
 



 
 re [1] java面试题2(编程)JAVA forum  
- miles04-08-16 08:43  

上次还没有弄完,呵呵。。

reply[F0128183]
 



 
 re [1] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-18 21:48  

6>>
//StringBuffer in JDK 1.4
public static String reverse(String s)
{
    StringBuffer sb=new StringBuffer(s);
    return sb.reverse().toString();
}
//数组
public static String reverse(String s)
{
  int size=s.length();
  char[] c=new char[size];
  for(int i=0;i<org.length();i++)
  {
    c[i]=s.charAt(size-i-1);
  }
  String result=new String(c);
  return result;
}

reply[F0128397]
 



 
 re [2] java面试题2(编程)JAVA forum  
- miles04-08-19 14:12  

后者应该高点

reply[F0128438]
 



 
 re [1] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-18 22:22  

7>>>
public static int calculate(int n)
{
  if(n==1)
  {
    return 1;
  }
  else
  {
    if(n%2==0)
    {
      return -n+calculate(n-1);
    }
    else
    {
      return n-calculate(n-1);
    }
  }
}

reply[F0128398]
 



 
 re [1] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-18 23:19  

10>>>
思路:这是一个求极限的问题。每一次的路程是前一次的一半,当n趋向于无穷大时,路程通项趋向于0;
总路程为total=m(1+1/2+1/4+1/8+...+1/2^n)
根据求和函数total=2m
算法:
public static double makeHalf(double h)
{
    if(h==1)
    {
        return h;
    }
    else
    {
        return h+makeHalf(h*2);
    }
}
public static void main(Sring args[])
{
    //假设高度为100米
    double height=100;
    //假设总共需要弹起10次(数字越大越接近实际值)
    int time=10;
    double last=Math.pow(2,-time);
    System.out.println("总路程为"+height*makeHalf(last));
}

reply[F0128399]
 



 
 re [2] java面试题2(编程)JAVA forum  
- xfv3k04-08-19 13:30  

double last=Math(2,-time);
这一句没有搞懂,不懂Math()的用法。

reply[F0128428]
 



 
 re [3] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-19 13:33  

不好意思,写错了,应该是Math.pow(2,-time);
是对2求幂,查查文档就知道了

reply[F0128429]
 



 
 re [1] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-18 23:22  

第9题是不是说只要能产生包含1-20的数字,但顺序不同的序列?

reply[F0128400]
 



 
 re [2] java面试题2(编程)JAVA forum  
- xfv3k04-08-19 13:21  

对,就是你这个意思。

reply[F0128425]
 



 
 re [3] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-19 13:25  

这个就有困难了,因为1-20个数字能生成20!种可能啊。有点象在做加密序列号啊,呵呵,这个没思路了。

reply[F0128427]
 



 
 re [4] java面试题2(编程)JAVA forum  
- xfv3k04-08-19 13:36  

不用生成那么多,每次只要求生成一个序列,每次都就不同,就可以了。

reply[F0128431]
 



 
 re [1] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-19 09:50  

11>>>
import java.util.*;
public class StackTest
{
  //定义容器
  Vector container;
 
  public StackTest()
  {
    container=new Vector();
  }
  //放置对象到顶层
  public void put(Object obj)
  {
    container.addElement(obj);
  }
  //从顶层获取对象,并清除该对象
  public Object fetch()
  {
    Object o=container.lastElement();
    container.removeElementAt(container.size()-1);
    return o;
  }
  //获取当前容器大小
  public int getSize()
  {
    return this.container.size();
  }
  public static void main(String args[])
  {
    StackTest st=new StackTest();
    st.put("one");
    st.put("two");
    st.put("three");
    //st.put("three");
    System.out.println(st.fetch().toString());
    System.out.println(st.getSize());
  }
}

reply[F0128408]
 



 
 re [1] java面试题2(编程)JAVA forum  
- miles04-08-19 14:20  

关于9:

只要做一个20次的循环,每次循环中,利用数组的(length*随机数)得到一个index,挑出这个index所在的数就行了——当然,每次循环以后要从数组中删除挑出的那个数。

reply[F0128441]
 



 
 re [2] java面试题2(编程)JAVA forum  
- 呼呼猪04-08-19 17:40  

根据MILES的理论,我写了如下方法,请参考:
其中可以修改放置任何对象,可以实现任意对象的随机存取。
修改内部数组可以产生任意数量的随机序列。
import java.util.Random;
public class test
{
  public static String[] createRandom()
  {
    String[] num={"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"};
    String[] container=new String[num.length];
    Random rd=new Random();
    for(int i=0;i<num.length;i++)
    {
      //生成随机数,范围逐渐缩小,以便提高运行速度     
      int index=rd.nextInt(num.length-i);
      container[i]=num[index];
      //重构数组结构,后者覆盖前者
      for(int j=index;j<num.length-1;j++)
      {
        num[j]=num[j+1];
      }
      num[num.length-i-1]="";
    }
    return container;
  }
 
  public static void main(String args[])
  {
    String[] st=createRandom();
    System.out.print("随机数:");
    for(int i=0;i<st.length;i++)
    {
      System.out.print("["+st[i]+"]");
    }
  }
}

reply[F0128460]
 



 
 re [3] java面试题2(编程)JAVA forum  
- miles04-08-24 09:33  

呵呵,差不离~~

reply[F0128701]
 



您的位置
  (c)2000-2019 Yup Studio, all rights reserved.  
203.125