讨论 / C++有问题
Agent_Smith_ 2013-07-29 10:19:00
点我顶贴 收藏 删除
我用C++写,用了using namespace std;然后前面三个点全都过不了,一个超时,两个没有输出

我特别用cout << 1 << " "<< 2 ;来测试,结果连这个都超时和没有输出,看来是C++编译器的问题

但是,翻译成C后一次过,各位注意下。

顺便吐槽下,现在是C99标准了。。

另外这题不需要穷举,也不需要搞等差数列求和,线性算法有技巧。

等于,输出,继续往前加;

小于,加

大于,扔头扔到小为止,继续加

#include <stdio.h>

int main(void)

{

int num;

int sum = 0;

int start = 0;

scanf("%d",&num);

for(int i = 0;i <= num / 2 + 1;i++)

{

sum += i;

while(sum > num)

{

sum -= start;

start ++;

}

if(num == sum)

{

printf("%d %d\n",start,i);

}

}

return 0;

}

#1 Agent_Smith_@2013-07-29 10:19:00
回复 删除
补充一下C++的代码

view sourceprint?01.#include <iostream>

02.using namespace std;

03.int main(void)

04.{

05.

int num;

06.

int sum = 0;

07.

int start = 0;

08.

cin >> num;

09.

for(int i = 0;i <= num / 2 + 1;i++)

10.

{

11.

sum += i;

12.

while(sum > num)

13.

{

14.

sum -= start;

15.

start ++;

16.

}

17.

if(num == sum)

18.

{

19.

cout << start << " " << i;

20.

cout << endl;

21.

}

22.

}

23.

return 0;

24.}

查看更多回复
提交回复