2014第五屆藍橋杯JAVA本科B組_猜字母

來源:互聯網
上載者:User

標籤:

 1 /* 2 把abcd...s共19個字母組成的序列重複拼接106次,得到長度為2014的串。   3 接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。   4 得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母,請寫出該字母。   5 答案是一個小寫字母,請通過瀏覽器提交答案。不要填寫任何多餘的內容。  6  */
7 public class Main { 8 public static void main(String[] args) { 9 String s = "abcdefghijklmnopqrs";10 String str = "";11 for (int i = 0; i < 106; i++) {12 str += s; //重複拼接13 }14 System.out.println(str.length());15 boolean arr[] = new boolean[str.length()];16 for (int i = 0; i < arr.length; i++) {17 arr[i] = true; //標記字母是否已刪除(false為刪除)18 }19 int i = 0; //舊串(一直是str)的下標20 int countNum = 0; //新串的下標21 int leftNum = str.length(); //刪除後剩下的字母數 22 23 while (leftNum > 1) { //題目描述最後只剩下一個字母24 if (arr[i] == true) { //如果字母未被刪除25 if (countNum % 2 == 0) { //如果新串的下標為偶數26 arr[i] = false; //刪除該字母27 leftNum--; //剩下的字母數-128 }29 countNum++; //遍曆新串(未被刪除的字母構成的串)30 }31 i++; //遍曆舊串(一直是str)32 33 if (i == str.length()) { //如果遍曆完一遍,(題目描述得到的新串再進行刪除奇數位置字母的動作),迴圈刪除34 countNum = 0; //設為0重新開始 35 i = 0;36 }37 }38 for (int j = 0; j < arr.length; j++) {39 if (arr[j] == true) {40 System.out.println(str.charAt(j));41 }42 }43 }44 }

 

2014第五屆藍橋杯JAVA本科B組_猜字母

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.