打印值会更改代码的输出
Printing a value changes the output of the code
几个小时前,CodeForces举行了一场比赛,这是比赛的问题之一——
问题C(你不必阅读/解决它来回答问题(
编辑:根据要求在此处添加问题,同样,不一定必须阅读它。
Slastyona和她忠诚的狗Pushok正在玩一个毫无意义的游戏 确实很有意思。
游戏由多个回合组成。它的规则非常简单:在 每一轮,选择一个自然数K。然后,说(或 吠叫(它比另一个赢得回合的速度更快。之后, 胜者的分数乘以K2,失败者的分数为 乘以 k。在游戏开始时,斯拉斯乔纳和 普肖克的分数等于一。
不幸的是,Slastyona失去了她的记事本,所有的历史 记录了n场比赛。她设法回忆起每个的最终结果 虽然游戏,但她对它们的所有记忆都是模糊的。帮助 Slastyona 验证它们的正确性,或者换句话说,对于 每对给定的分数决定了游戏是否可能 以这样的结果结束与否。
输入 在第一个字符串中,游戏数 n (1 ≤ n ≤ 350000( 为 鉴于。
每场比赛由一对分数 a、b (1 ≤ a、b ≤ 10^9( – 相应地,Slastyona和Pushok的结果。
输出 对于每对分数,如果可能,请回答"是" 游戏以给定的分数结束,否则为"否"。
您可以以任意大小写(大写或小写(输出每个字母。
所以我解决了它,比赛结束后,我和我的朋友们正在讨论这些问题,他们问我下面的测试用例的答案是什么——
1 1 1
我在我的IDE(Dev-C++ 5.11(上说它是"是",(因为它应该是(
但是当我们在ideone上运行它时,结果是"否"!
我认为我的代码一定只有问题,所以当我遇到这个问题时,我尝试调试它,
我的代码 -
#include<stdio.h>
using namespace std;
long long int iscube(long long int n)
{
long long int lo = 0;
long long int hi = 1000000;
while(lo < hi)
{
long long int mid = (lo+hi)/2;
if(mid*mid*mid < n)
lo = mid+1;
else
hi = mid;
}
return lo;
}
int main()
{
long long int a,b;
int n;
scanf("%d",&n);
while(n--)
{
scanf("%I64d %I64d",&a,&b);
long long int c = a*b;
long long int cb = iscube(c);
//printf("%lld",cb)
if(cb*cb*cb == c)
{
if(a%cb == 0 && b%cb == 0)
printf("Yesn");
else
printf("Non");
continue;
}
printf("Non");
}
}
当我将输入作为
1
1 1
在上面的代码中,答案是"否">
但是如果我只取消注释main(( 函数中 while 循环中 if 语句上方的行,
答案是"1 是">
(这些输出是我在 ideone 上运行代码时得到的输出,在 Dev-C++ 5.11 上运行时,我按预期得到"是"和"1 是"(
现在,当我在想我的代码力答案将被评估为 WA 时,经过系统测试,它被接受!
有没有人知道为什么会出现这个问题?
(另外,如果有的话,有人可以添加适当的标签吗(
打开警告,您的scanf
中有未定义的行为:
warning: length modifier 'I64' results in undefined behavior or no effect with 'd' conversion specifier [-Wformat]
scanf("%I64d %I64d",&a,&b);
如果将其更改为scanf("%lld %lld",&a,&b);
(C++11(,那么您将定义行为,但是由于您使用的是C++,因此只需使用流:
std::cin >> a >> b;
演示
- 我的代码输出总是得到 0
- 代码输出随机符号,我不确定出了什么问题
- 为什么当我正确执行语法时,我的代码输出为 0
- 为什么这段代码输出这么多数字
- 当我输入任何内容时,我的代码输出无效
- 我在让我的代码输出整个链表时遇到问题.它只是输出我修改过的一些文本文件,而不是整个东西
- 在 netbeans 中将C++代码输出为汇编语言
- 使用向量(STL)时,未定义的行为,请说明理性背后的以下代码输出
- 当我尝试运行此代码输出时"merge.exe has stopped working"?
- 欧拉项目 #14 代码输出未到来
- C++中的代码输出出现问题
- 如何删除此代码输出的结束空格
- 这段代码输出什么笑脸
- Win32 键转换代码输出不需要的按键
- 在 QT 中将代码输出到主窗口
- 我无法让此代码输出平均工资率,任何人都可以解释原因
- C++字母等效数字代码输出程序
- 我的代码输出重复
- c++代码输出说明
- C++代码输出负值