亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java in ACM/ICPC

2019-11-14 21:14:00
字體:
來源:轉載
供稿:網友
java in ACM/ICPC

目錄

  • Java在ACM/ICPC中的特點

  • 在ACM/ICPC中使用Java需要注意的問題

  • Java與高精度計算

1.Java在ACM/ICPC中的特點

Java的語法和C++幾乎相同

Java在執行計算密集任務的時候并不比C/C++慢多少,只是IO操作較慢而已

Java 簡單而功能強大,有些東西用Java實現起來更為方便

比如:輸入輸出、字符串解析、高精度

Java不易犯細微的錯誤

C/C++中的指針

“if (n = m) ... ”

Java與Eclipse

2.在ACM/ICPC中使用Java需要注意的問題java程序結構

Java I/O

JDK1.5.0新增的Scanner類很適合用于AMC/ICPC的輸入

使用Scanner類的一般步驟

1.導入Scanner類

import java.util.Scanner;

2.創建Scanner類的對象

Scanner cin=new Scanner(System.in); //從標準輸入讀入數據

Scanner cin=new Scanner(“12 30”)); //從字符串讀入數據

3.使用Scanner類的對象讀入各種類型的數據

cin.nextInt()

cin.nextDouble();

Scanner類的常用方法1.讀入數據

Scanner類方法

對應C操作

對應C++操作

int n = cin.nextInt();

scanf("%d", &n);

cin >> n;

String s = cin.next();

scanf("%s", s);

cin >> s;

double t = cin.nextDouble();

scanf("%lf", &t);

cin >> t;

String s = cin.nextLine();

gets(s);

cin.getline(...);

BigDecimal b=cin.nextBigDecimal();

2.判斷是否還有數據

cin.hasNext() 或 cin.hasNextInt() 或 cin.hasNextDouble()

Scanner類的用方法示例:

import java.util.*;public class Main{    public static void main(String[] args){        Scanner sc=new Scanner(System.in);        while(sc.hasNext()){            char ch=(char)sc.nextInt();            System.out.PRint(ch);        }     }}
標準輸出System.out.print(…); //不輸出換行System.out.println(…); //輸出換行
import java.io.*;public class Main{    static PrintStream cout=System.out;    public static void main(String[] args){        int n=3,m=5;        cout.println(n);  // 輸出3         //同一行輸出多個整數可以用        cout.println(n+" "+m);    }}

用DecimalFormat類控制浮點數小數位數

import java.text.DecimalFormat;

控制方法

構造特定的DecimalFormat對象:DecimalFormat f=new DecimalFormat(“#.00#”);

構造函數中的參數是模式字符串,0指一位數字,#指除0以外的數字

使用DecimaFormat對象格式化需要輸出的浮點數:System.out.println(f.format(12.1234));

DecimalFormat示例

import java.text.*;public class decimalformat{    public static void main(String[] args){        DecimalFormat f = new DecimalFormat("#.00#");        DecimalFormat g = new DecimalFormat("0.000");        double a = 123.4509, b = 0.12;        System.out.println(f.format(a));        System.out.println(g.format(a));        System.out.println(f.format(b));        System.out.println(g.format(b));    }}

運行結果:

123.451

123.451

.12

0.120

格式化輸出的另一種方法是利用System.out.printf(“格式字符串”,…),其用法和c的printf基本一致
int a=10;float b=2.35f;System.out.printf("%d %10.5f/n", a, b); 
字符串(String)

String類常用方法:

構造字符串:
String s=“abcde”;char[] chs={‘a’,’b’,’c’,’d’,’e’};String s=new String(chs);
取得字符串中某個字符:
char ch=s.charAt(1);    //ch=‘b’;
求子串:
System.out.println(s.substring(0, 3)) // output “abc"System.out.println(s.substring(1, 3)) // output “bc"System.out.println(s.substring(1)) // output “bcde"
拆分字符串:
String s=“123:34:55”;String[] ss = s.split(“:”);for(int i=0;i<ss.length;i++) System.out.println(ss[i]);

運行結果:

123

34

55

替換字符串:
String s=“2009-07-26”;System.out.println( s.replace(‘-’,’//’) ); //輸出2009/07/26String s=“0.123456”;System.out.println( s.replaceAll(“^0”,””) ); //輸出.123456

String中的字符不能改變,如果需要改變可以使用StringBuffer

其他注意的事項

Java數組是對象,定義后必須初始化,如 int[] a = new int[100];數組長度由length成員得到,如System.out.println(a.length);

Arrays類提供的一些有用方法:

Arrays.fill()

Arrays.sort()

Arrays.binarySearch()

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

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

Java也提供了類似STL的集合類:

Vector,ArrayList,Map,Queue,Stack,Hashtable

3.Java與高精度計算PKU1001-exponentiation(求冪):

Sample Input

95.123 12

0.4321 20

5.1234 15

6.7592 9

98.999 10

1.0100 12

Sample Output

548815620517731830194541.899025343415715973535967221869852721

. 00000005148554641076956121994511276767154838481760200726351203835

429763013462401

43992025569.928573701266488041146654993318703707511666295476720493

953024

29448126.764121021618164430206909037173276672

90429072743629540498.107596019456651774561044010001

1.126825030131969720661201

用C/C++解決的方法

C/C++的pow函數無法達到需要的精度

C/C++用數組來模擬乘法運算提高精度

java代碼:
import java.math.*;import java.util.*;public class Main{    public static void main(String[] args){        Scanner in=new Scanner(System.in);        while(in.hasNext()){            BigDecimal val=in.nextBigDecimal();            int n=in.nextInt();            BigDecimal ret=val.pow(n).stripTrailingZeros();            System.out.println( ret.toPlainString().replaceAll("^0", "") );        }    }}

BigDecimal類

高精度的有符號十進制數字構造一個高精度數字

BigDecimal (int val)

BigDecimal (double val)

BigDecimal (String val)

BigDecimal d1=new BigDecimal(1);BigDecimal d2=new BigDecimal(0.1);BigDecimal d3=new BigDecimal("0.1");        System.out.println("d1="+d1);System.out.println("d2="+d2);System.out.println("d3="+d3);
BigDecimal類常用方法:
BigDecimal add(BigDecimal augend)        //  “+”BigDecimal subtract(BigDecimal subtrahend)    //  “-”BigDecimal multiply(BigDecimal multiplicand)    //  “*”BigDecimal divide(BigDecimal divisor)        //  “/”BigDecimal remainder(BigDecimal divisor)    //  “%”BigDecimal pow(int n)                //“求冪”String toPlainString()    //返回不帶指數的字符串表示String toString()        //返回帶指數的字符串表示
PKU高精度計算題目:

1131、1205、1220、1405、1503、1604 1894、2084、2305、2325、2389、2413 3101、3199


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本久久综合亚洲鲁鲁| 亚洲在线第一页| 亚洲成年人影院在线| 国产成人亚洲综合| 国产主播欧美精品| 一个人看的www久久| 欧美精品在线视频观看| 日本一区二区不卡| 91在线视频免费| 精品国产一区二区三区久久久狼| 欧美成人免费在线观看| 国产一区视频在线播放| 精品国产网站地址| 欧美性猛交99久久久久99按摩| 欧美最顶级的aⅴ艳星| 国产一区二区在线免费| 日韩免费av在线| 国产午夜精品全部视频在线播放| 日韩av网址在线| 国产精品最新在线观看| 日韩最新免费不卡| 91精品久久久久久久久| www.久久撸.com| 久久亚洲精品一区二区| 欧美午夜精品久久久久久人妖| 日韩欧美中文第一页| 国产亚洲精品91在线| 国产精品一区电影| 红桃视频成人在线观看| 久久久亚洲欧洲日产国码aⅴ| 欧美视频第一页| 国产z一区二区三区| 欧美精品在线免费观看| 精品欧美激情精品一区| 亚洲va国产va天堂va久久| 国产精品视频xxx| 国产精品无av码在线观看| 亚洲qvod图片区电影| 亚洲精品女av网站| 午夜精品久久久久久久久久久久久| 欧美一级视频在线观看| 8x海外华人永久免费日韩内陆视频| 最近2019中文字幕一页二页| 中文字幕日韩高清| 日韩在线观看成人| 国产精品丝袜白浆摸在线| 九九热这里只有在线精品视| 欧美性猛交xxxx乱大交3| 日本一本a高清免费不卡| 久久久久国产精品免费| 成人在线视频网| 国产专区精品视频| 中文日韩电影网站| 久久久久久久久国产精品| 免费不卡在线观看av| 午夜剧场成人观在线视频免费观看| 91精品久久久久久| 亚洲色图美腿丝袜| 国产精品入口夜色视频大尺度| 日韩在线观看网站| yellow中文字幕久久| 日本免费在线精品| 欧美电影免费看| 亚洲欧美一区二区三区在线| 亚洲福利视频专区| 久久久久久久国产精品视频| 欧美激情小视频| 91久久久久久久久久| 久久精品久久久久久国产 免费| 粉嫩av一区二区三区免费野| 欧美床上激情在线观看| 欧美激情奇米色| 三级精品视频久久久久| 国产成人高潮免费观看精品| 精品一区二区三区三区| 成人激情视频在线观看| 精品福利免费观看| 国产精品久久久久久久久借妻| 日韩免费观看高清| 亚洲天堂男人天堂| 国产精品久久久999| 狠狠色狠色综合曰曰| 日韩精品视频在线观看免费| 亚洲美女动态图120秒| 91久久久久久国产精品| 欧美黑人极品猛少妇色xxxxx| 日韩精品在线免费观看| 国产亚洲精品久久久久久777| 日韩电影免费观看在线观看| 91超碰caoporn97人人| 51精品在线观看| 欧美理论电影在线播放| 最近免费中文字幕视频2019| 亚洲欧美激情精品一区二区| 国产精品丝袜高跟| 欧美日韩成人免费| 日韩在线观看网址| 欧美激情videoshd| 亚洲激情国产精品| 日韩精品中文字幕在线播放| 日韩电影免费观看在线观看| 欧美日韩免费看| 色综合视频一区中文字幕| 久久久久久久亚洲精品| 亚洲欧美资源在线| 欧美中文字幕第一页| 国产日本欧美一区二区三区在线| 欧美精品激情在线| 欧美性开放视频| 91亚洲精品久久久久久久久久久久| 欧美高清激情视频| 97香蕉超级碰碰久久免费软件| 91系列在线观看| 色综合导航网站| 91成人免费观看网站| 亚洲欧美三级在线| 欧美一乱一性一交一视频| 日韩电影网在线| www.精品av.com| 日韩网站免费观看| 日韩国产欧美精品在线| 欧美精品videosex性欧美| 亚洲免费av网址| 日韩av一区在线观看| 81精品国产乱码久久久久久| 欧美精品videos另类日本| 狠狠久久亚洲欧美专区| 韩国一区二区电影| 91久久精品美女| 韩国19禁主播vip福利视频| 精品中文字幕久久久久久| 久久亚洲私人国产精品va| 久久成人这里只有精品| 九九视频直播综合网| 国产精品嫩草影院一区二区| 精品久久久久久久久久ntr影视| 国产成人精品久久亚洲高清不卡| 琪琪第一精品导航| 欧美日韩人人澡狠狠躁视频| 成人一区二区电影| 2019中文字幕免费视频| 欧美日韩国产成人| 亚洲精品98久久久久久中文字幕| 日本午夜精品理论片a级appf发布| 一区二区在线免费视频| 两个人的视频www国产精品| 8090成年在线看片午夜| 国产成人精品久久亚洲高清不卡| 91免费视频网站| 国产精品成人观看视频国产奇米| 国产精品伦子伦免费视频| 国产精品日韩av| 国产成人精品久久二区二区91| 国产精品亚洲网站| 欧美电影第一页| 在线成人一区二区| 国产精品视频xxx| 国产视频福利一区| 国产精品在线看| 深夜福利91大全| 一区二区欧美在线| 成人久久一区二区| 性欧美xxxx交| 亚洲免费高清视频|