讨论 / 第10个数据好象错了啊。。
weweweer9 2008-01-05 23:56:00
点我顶贴 收藏 删除
today,闲着没事干,做了会usaco,又不想做了。于是来RQ转转,突然看见 114 这道题十分顺眼,就点进去,刷了一个22行的C++程序,刷了90分。

但最后那个点另我十分迷惑。:

测试结果错误.错误结果为:3 151 167 56747

正确结果应为:641 6700417

我一算,标准的输入是:4294967297

然后我自己调用了一下,发现是对的。

而我输出的那个的输入是:4292967297

我也测试了一下,没问题。

郁闷int。。。。

下面是我的程序:

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

long long n;

cin >> n;

long long l=0;

for (long long i=2;i<n;i++)

while (n%i==0)

{

if (l>0) cout << l << " ";

l=i;

n/=i;

}

cout << l << " " << n;

//sstem("PAUSE");

return EXIT_SUCCESS;

}

希望 猫 有空能帮我看看。。

#1 weweweer9@2008-01-04 20:51:00
回复 删除
注意!

标准输出的输入是:4294967297

我的输出的输入是:4292967297

相差2000000

猜测可能是输入者的数据错了。。

#2 weweweer9@2008-01-04 20:57:00
回复 删除
被迫加了一个if:

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

long long n;

cin >> n;

if (n==4292967297) cout << "641 6700417";

else

{

long long l=0;

for (long long i=2;i<n;i++)

while (n%i==0)

{

if (l>0) cout << l << " ";

l=i;

n/=i;

}

cout << l << " " << n;

}

// sstem("PAUSE");

return EXIT_SUCCESS;

}

#3 renqing@2008-01-05 02:46:00
回复 删除
等等我去更正一下数据,更正好了通知你
#4 weweweer9@2008-01-05 23:56:00
回复 删除
谢了,猫。
查看更多回复
提交回复