分為三個部分 1. 窮舉輸入的min ~ max之間所有數字 2. 找出幾位數並計算 3.縮短執行時間
窮舉 for (int i=min; i <= max; i++) {}
找出幾位數: while i >0 ( i /=10, len++) ,len 為幾位數
計算時,縮短執行時間,加起來已經大於i則跳出迴圈
while ( armNum <= i && i>0 ) { armNUM += (i%10) ^ len; i /= 10; }
最後只判斷 armNUM == i 順便用個count如果找到就count++。
count = 0 就none
(上面只是概念,請記得找個值暫存i,因為i要拿來判斷值不能變...)
分為三個部分 1. 窮舉輸入的min ~ max之間所有數字 2. 找出幾位數並計算 3.縮短執行時間
窮舉 for (int i=min; i <= max; i++) {}
找出幾位數: while i >0 ( i /=10, len++) ,len 為幾位數
計算時,縮短執行時間,加起來已經大於i則跳出迴圈
while ( armNum <= i && i>0 ) { armNUM += (i%10) ^ len; i /= 10; }
最後只判斷 armNUM == i 順便用個count如果找到就count++。
count = 0 就none
(上面只是概念,請記得找個值暫存i,因為i要拿來判斷值不能變...)
這裡有可以參考的程式碼:
https://youtube.com/shorts/g2-dkQsPBtQ?feature=share