我们有一个长度(比如 3)和一些计数序列的数组:0,1,2,3,4,...到无穷大。在该输入序列中,我们需要生成将来回遍历数组的序列,例如:0,1,2,1,0,1,2,1,0,...等等length=3。
我认为这项任务在许多编程书籍中都很常见,但我找不到标准解决方案,所以我创建了自己的解决方案。有没有其他更有效和优雅的解决方案,因为我不喜欢我的解决方案???
#define LENGTH 5
int main()
{
char arr[LENGTH] = {'a','b','c','d','e'};
int i;
int base=0;
for(i=0;i<100;i++){
if(i%(LENGTH-1)==0){
if(base==0) base=LENGTH-1;
else base =0;
}
int j = abs(base-i%(LENGTH-1));
printf("%c ",arr[j]);
}
}
Java 代码(为方便起见):
public static void traverse(){
char arr[] = {'a','b','c','d','e'};
int base=0;
for(int i=0;i<100;i++){
if(i%(arr.length-1)==0){
if(base==0) base=arr.length-1;
else base =0;
}
int j = Math.abs(base-i%(arr.length-1));
System.out.println(arr[j]+" ");
}
}
蛊毒传说
侃侃尔雅
相关分类