假設有數組a[]={0,1,2,3,4,5,6,7,8,9}
每3位反轉後爲b[]={2,1,0,5,4,3,8,7,6,9},最後不夠3位的不反轉
若按K位反轉,i爲下標,從0開始
for(int i=0;i<10;i++)
b[i]=a[(i/k)*k+k-i%k-1];
公式:i=(i/k)*k+k-i%k-1
解釋:
(i/k)*k:表示段增加,即下一個K位
k-i%k-1:表示在此段中的位置
假設有數組a[]={0,1,2,3,4,5,6,7,8,9}
每3位反轉後爲b[]={2,1,0,5,4,3,8,7,6,9},最後不夠3位的不反轉
若按K位反轉,i爲下標,從0開始
for(int i=0;i<10;i++)
b[i]=a[(i/k)*k+k-i%k-1];
公式:i=(i/k)*k+k-i%k-1
解釋:
(i/k)*k:表示段增加,即下一個K位
k-i%k-1:表示在此段中的位置