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

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

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

    隨筆 - 147  文章 - 71  trackbacks - 0
    <2009年3月>
    22232425262728
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(1)

    隨筆分類(146)

    隨筆檔案(147)

    文章分類(28)

    文章檔案(28)

    喜歡的Blog

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

     

    1.         基本輸入輸出:

    1)        JDK 1.5.0 新增的Scanner類為輸入提供了良好的基礎(chǔ),簡(jiǎn)直就是為ACM-ICPC而設(shè)的。

    一般用法為:

    import java.io.*

    import java.util.*

     

    public class Main

    {

    public static void main(String args[])

    {

    Scanner cin = new Scanner(new BufferedInputStream(System.in));

    ...

    }

    }

    當(dāng)然也可以直接 Scanner cin = new Scanner(System.in); 只是加Buffer可能會(huì)快一些。

    2)         

    讀一個(gè)整數(shù):   int n = cin.nextInt();         相當(dāng)于   scanf("%d", &n);   cin >> n;

    讀一個(gè)字符串:String s = cin.next();         相當(dāng)于   scanf("%s", s);    cin >> s;

    讀一個(gè)浮點(diǎn)數(shù):double t = cin.nextDouble();      相當(dāng)于   scanf("%lf", &t); cin >> t;

    讀一整行:     String s = cin.nextLine();    相當(dāng)于   gets(s);           cin.getline(...);

    判斷是否有下一個(gè)輸入可以用 cin.hasNext() cin.hasNextInt() cin.hasNextDouble() 等,具體見(jiàn) TOJ 1001 例程。

    3)        輸出一般可以直接用 System.out.print() System.out.println(),前者不輸出換行,而后者輸出。

    比如:System.out.println(n);   // n int

    同一行輸出多個(gè)整數(shù)可以用

    System.out.println(new Integer(n).toString() + " " + new Integer(m).toString());

    也可重新定義:

    static PrintWriter cout = new PrintWriter(new BufferedOutputStream(System.out));

    cout.println(n);

    4)        對(duì)于輸出浮點(diǎn)數(shù)保留幾位小數(shù)的問(wèn)題,可以使用DecimalFormat類。

    import java.text.*;

    DecimalFormat f = new DecimalFormat("#.00#");

    DecimalFormat g = new DecimalFormat("0.000");

    double a = 123.45678, b = 0.12;

    System.out.println(f.format(a));

    System.out.println(f.format(b));

    System.out.println(g.format(b));

    這里0指一位數(shù)字,#指除0以外的數(shù)字。

     

    2.         大數(shù)字

    BigInteger BigDecimal 是在java.math包中已有的類,前者表示整數(shù),后者表示浮點(diǎn)數(shù)。

    用法:不能直接用符號(hào)如+-來(lái)使用大數(shù)字,例如:

    import java.math.*   // 需要引入 java.math

    BigInteger a = BigInteger.valueOf(100);

    BigInteger b = BigInteger.valueOf(50);

    BigInteger c = a.add(b)   // c = a + b;

     

    主要有以下方法可以使用:

    BigInteger add(BigInteger other)

    BigInteger subtract(BigInteger other)

    BigInteger multiply(BigInteger other)

    BigInteger divide(BigInteger other)

    BigInteger mod(BigInteger other)

    int compareTo(BigInteger other)

    static BigInteger valueOf(long x)

     

    輸出大數(shù)字時(shí)直接使用 System.out.println(a) 即可。

     

    3.         字符串

    String 類用來(lái)存儲(chǔ)字符串,可以用charAt方法來(lái)取出其中某一字節(jié),計(jì)數(shù)從0開(kāi)始:String a = "Hello";    // a.charAt(1) = 'e'

    substring方法可得到子串,如上例

    System.out.println(a.substring(0, 4))     // output "Hell"

    注意第2個(gè)參數(shù)位置上的字符不包括進(jìn)來(lái)。這樣做使得 s.substring(a, b) 總是有 b-a個(gè)字符。

    字符串連接可以直接用 + 號(hào),如

    String a = "Hello";

    String b = "world";

    System.out.println(a + ", " + b + "!");    // output "Hello, world!"

    如想直接將字符串中的某字節(jié)改變,可以使用另外的StringBuffer類。

     

    4.         調(diào)用遞歸(或其他動(dòng)態(tài)方法)

    在主類中 main 方法必須是 public static void 的,在 main 中調(diào)用非static類時(shí)會(huì)有警告信息,可以先建立對(duì)象,然后通過(guò)對(duì)象調(diào)用方法:

    public class Main

    {

    ...

    void dfs(int a)

    {

    if (...) return;

    dfs(a+1);

    }

    public static void main(String args[])

    {

    ...

    Main e = new Main();

    e.dfs(0);

    ...

    }

    }

     

    5.         其他注意的事項(xiàng)

    1)        Java 是面向?qū)ο蟮恼Z(yǔ)言,思考方法需要變換一下,里面的函數(shù)統(tǒng)稱為方法,不要搞錯(cuò)。

    2)        Java 里的數(shù)組有些變動(dòng),多維數(shù)組的內(nèi)部其實(shí)都是指針,所以Java不支持fill多維數(shù)組。

    數(shù)組定義后必須初始化,如 int[] a = new int[100];

    3)        布爾類型為 boolean,只有truefalse二值,在 if (...) / while (...) 等語(yǔ)句的條件中必須為boolean類型。

    C/C++中的 if (n % 2) ... Java中無(wú)法編譯通過(guò)。

    4)        下面在java.util包里Arrays類的幾個(gè)方法可替代C/C++里的memsetqsort/sort bsearch:

    Arrays.fill();

    Arrays.sort();

    Arrays.binarySearch();

     

    posted on 2009-03-13 15:21 飛翔天使 閱讀(626) 評(píng)論(1)  編輯  收藏 所屬分類: ACM

    FeedBack:
    # re: acm中用到JAVA的簡(jiǎn)單介紹 2009-03-18 12:05 ZelluX
    為什么還要先創(chuàng)建Main的實(shí)例呢,直接統(tǒng)一用static不就行了么  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲精品亚洲人成人网| 岛国精品一区免费视频在线观看| 日韩色视频一区二区三区亚洲| 久草免费在线观看视频| 一个人免费播放在线视频看片| 亚洲Av无码乱码在线znlu| A在线观看免费网站大全| 成人免费ā片在线观看| 亚洲av无码成人精品国产| 亚洲国产成人久久| 无码乱人伦一区二区亚洲| 国产亚洲av人片在线观看| 亚洲国产激情一区二区三区| 四虎影在线永久免费观看| 夜夜嘿视频免费看| 手机在线免费视频| 免费无码又黄又爽又刺激| xxxx日本免费| 成人免费福利视频| 精品久久8x国产免费观看| 67194国产精品免费观看| 67pao强力打造高清免费| 18女人腿打开无遮掩免费| 久久久久高潮毛片免费全部播放| 亚洲中文无码永久免| 亚洲最大av资源站无码av网址| 亚洲一级片内射网站在线观看| 特级无码毛片免费视频尤物| 久久久久久久久久久免费精品| 亚洲欧洲日韩综合| 亚洲一级大黄大色毛片| 亚洲AV成人噜噜无码网站| 久久精品国产亚洲AV忘忧草18| jlzzjlzz亚洲乱熟在线播放| 亚洲精品高清一二区久久| 中文字幕日韩亚洲| 亚洲精品午夜无码电影网| 亚洲中文字幕无码日韩| 久久亚洲AV午夜福利精品一区| 免费看国产曰批40分钟| 国产免费av一区二区三区|