程式設計師的數學基礎課 1 append
阿新 • • 發佈:2020-07-24
數學學霸半年逆襲託福?每天只要兩小時,從77分到102分,超簡單
public class Lesson1_append1 { public static void main(String[] args) { //偶數,奇數 count int even_cnt = 0, odd_cnt = 0; //開始,技術時間 long start = 0, end = 0; start = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { //i與1 /** * 請記住“&”是一個按位操作.您可能已經意識到這一點,但根據您提出問題的方式,我並不完全清楚. * 話雖這麼說,理論上的想法是你有一些int,可以通過一些1和0的系列來表示.例如: * * ...10110110 * 複製程式碼 * 在二進位制中,因為它是基數2,只要數字的按位版本以0結尾,它就是偶數,當它以1結尾時它是奇數. * * 因此,做一個按位&以上為1是: */ if((i & 1) == 0){ even_cnt ++; }else{ odd_cnt ++; } } end = System.currentTimeMillis(); System.out.println(end - start); System.out.println(even_cnt + " " + odd_cnt); even_cnt = 0; odd_cnt = 0; start = 0; end = 0; start = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { /** * 取餘2==0為偶數 */ if((i % 2) == 0){ even_cnt ++; }else{ odd_cnt ++; } } end = System.currentTimeMillis(); System.out.println(end - start); System.out.println(even_cnt + " " + odd_cnt); start = System.currentTimeMillis(); /** * 交換數字 */ for (int i = 0; i < 100000000; i++) { int x = 3, y = 5; x = (x ^ y); y = x ^ y; x = x ^ y; } end = System.currentTimeMillis(); System.out.println(end - start); start = System.currentTimeMillis(); for (int i = 0; i < 100000000; i++) { int x = 3, y = 5, t = 0; t = y; y = x; x = t; } end = System.currentTimeMillis(); System.out.println(end - start); // System.out.println(x + " " + y); } }