第九讲 约瑟夫
一、循环序列
例1 输入n,生成50个的0--n-1的循环序列,如下图生成0-6的循环序列。思路 本序列是0-6之间循环变化,可以用7的余数(% 7),而7的余数的序列是1,2,3,4,5,6,0,1,2…,与目标序列不一样,仔细观察,如果将该序列向右移动1位的话就变成了目标序列。应用数学知识,向右移动,相位减法操作。因此,目标序列的表达式是:(i – 1) % 7。
一、循环序列
例2 数字按步长移位。输入一个由阿拉伯数字构成的字符串,输入移动步长整数n,实现每个数字按0,1,2,3,4,5,6,7,8,9的顺序往后移n位。例如输入字符串”158”,n=4,”1”->”5”,”5”->”9”,”8”->”2”,即最终结果”592”。思路 本题原有的序列是0,1,2,9,0···,后移n位后的序列,相当于将原有序列左移n位,因此,只需将原有序列的表达式 i % 7,变为 (i+n) % 7即可。


雷达卡




京公网安备 11010802022788号







