首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教!这个程序的时间复杂度最坏情况上是多少?

2012-10-14 
请问!这个程序的时间复杂度最坏情况下是多少?。。[codeC/C++]#include iostreamusing namespace stdint

请问!这个程序的时间复杂度最坏情况下是多少?。。
[code=C/C++]

#include <iostream>
using namespace std;

int main()
{
  int m,n,p;
  cin >> n >> m;
  for (int i=1;i<=n;i++)
  {
  p=i*m;
  while (p>n)
  p=p-n+(p-n+1)/(m-1);
  cout << p << " ";
  }
  cout << endl;
  return 0;
}

[解决办法]
程序逻辑有问题
while (p>n)
p=p-n+(p-n+1)/(m-1);
如果m=2 那么p只能加到负数为止
[解决办法]
楼主这问题说的很含糊啊。你对m和n的输入值有没有限定啊??如果没有的话,取n为一个很大的值,m为一个负值。会死循环啊!我输入了个n=1000023,m = -3.如果双方都是正数的话,那么最坏情况都小于O(n*m)
[解决办法]
好像还是有问题吧。。p=p-n+(p-n+1)/(m-1)这里如果(p-n+1)/(m-1)大于n,那么p会递增,while循环永远不会结束,是不是还有什么条件?

热点排行