算法设计与第三章3算法优化试卷.pptVIP

  • 27
  • 0
  • 约1.62万字
  • 约 62页
  • 2017-07-07 发布于湖北
  • 举报
3.3 算法优化基本技巧 3.3.1 算术运算的妙用 3.3.2 标志量的妙用 3.3.3 信息数字化 3.3.1 算术运算的妙用 有关算术运算的妙用,在前面的许多例题中已有体现。如:上一节3.2.1“原始信息与处理结果的巧妙对应”中的例2,通过算术运算把数据信息归类后与下标对应。 总之,通过恰当的算术运算可以很好地提高编程效率,以及相关算法的运行效率。值得认真总结学习。 【例2】开灯问题:有从1到n依次编号的n个同学和n 盏灯。1号同学将所有的灯都关掉;2号同学将编号为2的倍数的灯都打开;3号同学则将编号为3的倍数的灯作相反处理(该号灯如打开的,则关掉;如关闭的,则打开);以后的同学都将自己编号的倍数的灯,作相反处理。问经n个同学操作后,哪些灯是打开的? 问题分析: 1)用数组表示某种状态,这里定义有n个元素的a数组,它 的每个下标变量a[i]视为一灯,i表示其编号。a[i]=1 表示灯处于打开状态,a[i]=0表示灯处于关闭状态。 2)实现将第i 灯作相反处理的操作,可以用条件语句if表 示:当a[i]为1时,a[i]被重新赋为0;当a[i]为0时, a[i]被重新赋为1。但通过以下算术运算: a[i]=1-a[i] 就很好地模拟“开关”灯的操作。 main( ) { int n,a[1000],i,k; pr

文档评论(0)

1亿VIP精品文档

相关文档