昨天在一個cocos2d-x的群里,有群友發了一個問題求答案,當時自已也一下子沒想到什么好的寫法,這時候有個群友寫了一個比較少見的代碼方法,當時一看到這代碼,我有一種如糊灌頂的感受,因為自已平時基本沒用這種寫法,今日在別的群,我就發了這道題讓大家討論一下,結果沒想到,引發了各種爭吵和討論,有寫得不好卻自以為是的,有寫得好卻看不起別人的寫法,有寫得很好卻十分低調的,十分精彩,也算是為群里熱鬧了一下氣氛,QQ群也變成了社會市井的一個濃縮了,呵呵。
以下貼上問題和昨天那位群友寫的代碼,我覺得精彩的地方就是取模這一句了。他的代碼未必是最高效的,但個人感覺這一句代碼可以反映出這位群友的思維比較跳躍開朗。歡迎大家點評,小生水平有限,不敢持任何批判。
問題:
將一個數組,從其中任何一個位置開始,讓它循環一遍? 或者說,從這個數組中的任何一個位置開始,給另一個數組賦值,完整的循環一次
比如:int[] t = {1,2,3,4,5,6}; 我想從3開始,輸出3,4,5,6,1,2
一位群友寫的代碼:
int i = 3
for(int j = 0 j++ J < t.lenth)
{
int a = (i+j)%t.lenth;
printf(“%d”,t[a]);
}