摩尼乌斯环计算的想法

今天闲着没事,把这个重新看了一下。浅浅的自己实现了一个。

主要思路:

1.循环处理数据,知道指定的条件。

2.边界值得判断,主要是批次清除数据(第N个数的特殊处理,这里做最简单的置零),单次循环结束,而总体条件没有达成,这时候,要重新驱动循环,保持批第N个数的计算索引的保留。

3.内部小循环判断 。

  3.1 判断是否需要计算,当为特殊值时,要跳过(我的方法把特殊值置零,所以,遇到零,不参加计算)。

  3.2 判断达道批次的最大值时的,处理,索引清0 。

4 数据输出,格式化。

5.测试程序,验证结果的正确性。

6.代码优化。 

        

        NSInteger index = 0;

        

        NSInteger rangeCounter = 3;

        

        NSMutableArray *myInputs = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", @"4",@"5",@"6",@"7",nil];

        

        NSInteger arrayLength = [myInputs count];

        NSInteger arrayLengthConst= arrayLength ;

        

        while   (arrayLength) {

        

            for (NSInteger arrIndex = 0 ;arrIndex < arrayLengthConst ; arrIndex++) {

            

                 //NSLog(@"%@",[myInputs objectAtIndex:arrIndex]);

                if ([myInputs objectAtIndex:arrIndex] != @0) {

                    

                    index++;

                    

                    

                    if( index == rangeCounter) {

                        NSInteger currentNo = [myInputs objectAtIndex:arrIndex] ;

                        [myInputs replaceObjectAtIndex:arrIndex   withObject:@0] ;

                        index = 0;

                        arrayLength--;

                        NSLog(@"%@",currentNo);

                    }

                }

            }

        }

原文地址:https://www.cnblogs.com/wcLT/p/6381967.html