<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    dream.in.java

    能以不變應萬變是聰明人做事的準則。萬事從小事做起,積累小成功,問鼎大成功,是成功者的秘訣。

    ACM之java速成

    ACM之java速成

    這里指的java速成,只限于java語法,包括輸入輸出,運算處理,字符串和高精度的處理,進制之間的轉換等,能解決OJ上的一些高精度題目。
    1. 輸入:
    格式為:Scanner cin = new Scanner (new BufferedInputStream(System.in));
    例程:
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.text.*;
    public class Main
    {
        public static void main(String[] args)
        {
            Scanner cin = new Scanner (new BufferedInputStream(System.in));
            int a; double b; BigInteger c; String st;
            a = cin.nextInt(); b = cin.nextDouble(); c = cin.nextBigInteger(); d = cin.nextLine(); // 每種類型都有相應的輸入函數.
        }
    }

    2. 輸出
    函數:System.out.print(); System.out.println(); System.out.printf();
    System.out.print(); // cout << …;
    System.out.println(); // cout << … << endl;
    System.out.printf(); // 與C中的printf用法類似.
    例程:
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.text.*;
    public class Main
    {
        public static void main(String[] args)
        {
            Scanner cin = new Scanner (new BufferedInputStream(System.in));
            int a; double b;
            a = 12345; b = 1.234567;
            System.out.println(a + " " + b);
            System.out.printf("%d %10.5f\n", a, b); // 輸入b為字寬為10,右對齊,保留小數點后5位,四舍五入.
        }
    }
    規格化的輸出:
    函數:
    // 這里0指一位數字,#指除0以外的數字(如果是0,則不顯示),四舍五入.
        DecimalFormat fd = new DecimalFormat("#.00#");
        DecimalFormat gd = new DecimalFormat("0.000");
        System.out.println("x =" + fd.format(x));
        System.out.println("x =" + gd.format(x));

    3. 字符串處理
    java中字符串String是不可以修改的,要修改只能轉換為字符數組.
    例程:
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.text.*;
    public class Main
    {
        public static void main(String[] args)
        {
            int i;
            Scanner cin = new Scanner (new BufferedInputStream(System.in));
            String st = "abcdefg";
            System.out.println(st.charAt(0)); // st.charAt(i)就相當于st.
            char [] ch;
            ch = st.toCharArray(); // 字符串轉換為字符數組.
            for (i = 0; i < ch.length; i++) ch += 1;
            System.out.println(ch); // 輸入為“bcdefgh”.
    if (st.startsWith("a")) // 如果字符串以'0'開頭.
            {
                st = st.substring(1); // 則從第1位開始copy(開頭為第0位).
            }
        }
    }

    4. 高精度
    BigInteger和BigDecimal可以說是acmer選擇java的首要原因。
    函數:add, subtract, divide, mod, compareTo等,其中加減乘除模都要求是BigInteger(BigDecimal)和BigInteger(BigDecimal)之間的運算,所以需要把int(double)類型轉換為BigInteger(BigDecimal),用函數BigInteger.valueOf().
    例程:
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.text.*;
    public class Main
    {
        public static void main(String[] args)
        {
            Scanner cin = new Scanner (new BufferedInputStream(System.in));
            int a = 123, b = 456, c = 7890;
            BigInteger x, y, z, ans;
            x = BigInteger.valueOf(a); y = BigInteger.valueOf(b); z = BigInteger.valueOf(c);
            ans = x.add(y); System.out.println(ans);
            ans = z.divide(y); System.out.println(ans);
            ans = x.mod(z); System.out.println(ans);
            if (ans.compareTo(x) == 0) System.out.println("1");
        }
    }

    5. 進制轉換
    java很強大的一個功能。
    函數:
    String st = Integer.toString(num, base); // 把num當做10進制的數轉成base進制的st(base <= 35).
    int num = Integer.parseInt(st, base); // 把st當做base進制,轉成10進制的int(parseInt有兩個參數,第一個為要轉的字符串,第二個為說明是什么進制).   
    BigInter m = new BigInteger(st, base); // st是字符串,base是st的進制.

    6. 排序
    函數:Arrays.sort();至于怎么排序結構體,像C++里寫個cmp的方法,在java還不太清楚,希望有人指點下~~
    例程:
    import java.io.*;
    import java.math.*;
    import java.util.*;
    import java.text.*;
    public class Main
    {
        public static void main(String[] args)
        {
            Scanner cin = new Scanner (new BufferedInputStream(System.in));
            int n = cin.nextInt();
            int a[] = new int [n];
            for (int i = 0; i < n; i++) a = cin.nextInt();
            Arrays.sort(a);
            for (int i = 0; i < n; i++) System.out.print(a + " ");
        }
    }

    posted on 2009-03-06 17:10 YXY 閱讀(171) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲s码欧洲m码吹潮| 免费91麻豆精品国产自产在线观看 | 免费视频爱爱太爽了| 亚洲熟妇成人精品一区| 亚洲综合色视频在线观看| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 亚洲高清免费视频| 真人无码作爱免费视频| 午夜免费福利在线| 亚洲精品成人久久| 亚洲不卡AV影片在线播放| 99在线观看精品免费99| 亚洲人成网站在线播放影院在线 | 1000部啪啪未满十八勿入免费| 亚洲日韩精品国产3区| 亚洲一区精品无码| 国产精品青草视频免费播放| 国产乱子伦精品免费女| 国产成年无码久久久免费| 亚洲AV色欲色欲WWW| 久久久久亚洲AV无码麻豆| 亚洲av中文无码| 一二三四视频在线观看中文版免费 | 女人体1963午夜免费视频| 亚洲福利视频导航| 日本人的色道免费网站| 五月天婷婷免费视频| 国产成人精品日本亚洲专区61| 欧洲乱码伦视频免费| 亚洲av无码成人影院一区| 亚洲福利视频导航| 国产精品亚洲玖玖玖在线观看| 黄页网站在线免费观看| 亚洲国产成人资源在线软件| 国产亚洲精AA在线观看SEE| 四虎永久在线精品免费观看地址| 在线精品一卡乱码免费| 国产成人+综合亚洲+天堂| 亚洲一区二区三区在线| 国产精品久久免费视频| 中国videos性高清免费|