首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

数组求解!解决办法

2012-01-10 
数组求解!第一题:列:2/1,3/2,5/3,8/4,13/5,21/6........到数列的前20项之和。第二题:字符数组:String []str

数组求解!
第一题:
   

  列:2/1,3/2,5/3,8/4,13/5,21/6........到数列的前20项之和。


第二题:

  字符数组:String []str={a,b,c};
 要求输出:a,b,c,ab,ac,ba,bc,ca,cb,abc,acb,bac,bca,cab,cba



[解决办法]
第一题:分子是斐波那契数列,可以这样试试:

Java code
public class TestTemp {        public static void main(String[] args) {        double[] f = new double[20];        f[0] = 2;        f[1] = 3;        double sum = 2/1 + 3.0/2;        for(int i=2; i<20; i++) {            f[i] = f[i-1]+f[i-2];            sum += ((double)f[i]/(i+1));        }        System.out.println(sum);    }}
[解决办法]
第一题http://topic.csdn.net/u/20110530/15/7648f8f0-e2e2-4a5b-a35d-8a1bbb43ac09.html
[解决办法]
第2题,写了个组合的方法,LZ自己再写个字符串全排列输出就可以了:
Java code
public static void main(String[] args) {        String[] ssss = {"a","b","c","d","e"};        mm1(ssss);    }public static void mm1(String[] str) {        for(int i = 1; i<=str.length;i++) {            mm2(str,i,"");            System.out.println();        }    }        public static void mm2(String[] str,int n,String st) {        if(str.length<n) {            return;        }        else if(n==1) {            String[] strr = new String[str.length];            for(int i = 0; i<str.length;i++) {                strr[i] = st+str[i];                System.out.print(strr[i]+" ");            }        }        else {            String st2 = st+str[0];            String[] str2 = new String[str.length-1];            for(int i = 1; i <str.length;i++) {                str2[i-1] = str[i];            }            mm2(str2,n-1,st2);            mm2(str2,n,st);        }    } 

热点排行