不是很难的问题,但有两个问题,一大一小需要注意一下:
大的问题是,看到这个题目,应该可以知道,对不每组不同的输入,会有些数据可以重复利用的,比如对于输入1 10和5 15来说,重复部分是5和10之间的数据。
也就是说,我们在处理每组数据时,不必要对每组的数据逐一处理,聪明的做法就是预先整一个大的数组,把我们所需要的所有的数据存下来,用的话直接去取就可以了。这样可以避免大量重复的计算。
小的问题就是,对于这种输入中有范围的数,注意一下,它并不是跟你想象中的那样,把小的放在前面,大的放在后面,这个需要额外的判断一下,如果不是的话,就swap一下。不过说实话,这种测试数据真的很无聊的说。

Code如下:

 1[HDOJ]1032. The 3n + 1 problem#include <iostream>
 2[HDOJ]1032. The 3n + 1 problemusing namespace std;
 3[HDOJ]1032. The 3n + 1 problem#define MAXNUM 1000000 + 1
 4[HDOJ]1032. The 3n + 1 problemint result[MAXNUM];
 5[HDOJ]1032. The 3n + 1 problemint main()
 6}

相关文章:

  • 2021-09-06
  • 2022-02-18
  • 2022-12-23
  • 2021-11-29
  • 2021-06-27
  • 2022-03-07
  • 2021-10-29
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2021-12-15
  • 2021-11-02
相关资源
相似解决方案