題目1:給定兩個數R和n,輸出R的n次方,其中0.0<R<99.999, 0<n<=25java
輸入描述:多組測試用例,請參考例題的輸入處理 輸入每行一個浮點數 R 其中0.0 < R <99.999, 一個整數 n 其中0 < n <=25測試
輸出描述:輸出R的n次方spa
輸入:95.123 12 0.1 1code
輸出:548815620517731830194541.899025343415715973535967221869852721 0.1blog
代碼:
1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 public class Main { 5 public static void main(String [] args) { 6 String r; 7 int n; 8 String s; 9 Scanner sc = new Scanner(System.in); 10 while(sc.hasNext()) { 11 r = sc.next();//用String來存儲,由於double和float都是不能準確的表示小數的,都是以概述來表示的 12 n = sc.nextInt(); 13 BigDecimal d = new BigDecimal(r); 14 BigDecimal ans = new BigDecimal(r); 15 for(int i =1;i<n;i++) { 16 ans = ans.multiply(d); 17 } 18 s = ans.stripTrailingZeros().toPlainString();//去除沒必要要的零,轉換爲字符串,防止科學計數法 19 System.out.println(s); 20 } 21 } 22 }
題目2:ip
輸入描述:ci
多組測試數據,請參考例題處理 每組數據k+3行, k表示addLand操做次數 第一行:表示行數m 第二行:表示列數n 第三行:表示addLand操做次數k 第4~k+3行:row col 表示addLand的座標。注意超過邊界的座標是無效的。
輸出描述:字符串
一行,k個整數, 表示每次addLand操做後島嶼的個數, 用空格隔開,結尾無空格
輸入例子1:get
3
3
4
0 0
0 1
1 2
2 1
輸出例子1:io
1 1 2 3
代碼:
1 import java.util.*; 2 public class Main { 3 public static void main(String [] args) { 4 Scanner sc = new Scanner(System.in); 5 while(sc.hasNext()) { 6 int m = sc.nextInt(); 7 int n = sc.nextInt(); 8 int k = sc.nextInt(); 9 int count = 0; 10 int[][] island= new int[m][n];//整個區域 11 int[][] num = new int[k][2];//出現斷點的地方 12 ArrayList<Integer> list = new ArrayList(); 13 for(int i=0;i<k;i++) {//存儲可能出現島嶼的地方 14 num[i][0] = sc.nextInt(); 15 num[i][1] = sc.nextInt(); 16 } 17 for(int i =0;i<k;i++) { 18 int a = num[i][0]; 19 int b = num[i][1]; 20 if(a<0||b<0||a>=m||b>=n) {//判斷是否越界 21 list.add(count);//若越界,則島嶼數不變 22 continue;//跳出本次for循環,到下一次循環 23 } 24 if(island[a][b]==1) {//判斷新的點以前已經變爲島嶼 25 list.add(count); 26 continue; 27 } 28 island[a][b] =1;//若未越界,且是一個新的點,則將其置1 29 if(a-1>=0&&island[a-1][b]==1) { 30 if(count!=0)count--;//若該新點爲橋,則將島嶼減一 31 } 32 if(a+1<m&&island[a+1][b]==1) { 33 if(count!=0)count--; 34 } 35 if(b-1>=0&&island[a][b-1]==1) { 36 if(count!=0)count--;//若該新點爲橋,則將島嶼減一 37 } 38 if(b+1<m&&island[a][b+1]==1) { 39 if(count!=0)count--; 40 } 41 count++;//上述操做判斷其不是橋,故島嶼數加一; 42 list.add(count); 43 } 44 for(int i=0;i<list.size();i++) { 45 System.out.print(list.get(i)+" ");//輸出島嶼 46 } 47 //System.out.println();//此處的做用爲下一次輸入的時候另起一行 48 } 49 } 50 }