我一直在使用有符号的长长,并且遇到了奇怪的问题 - 即不一致的行为。 即
long long i;
printf("%d", i);
这倾向于打印与 i 的实际值无关的值(cout 也发生这种情况)。
它也具有与%
的随机行为,即
if(i % x == 0)
//some code
这有时会运行,即如果i = 15
和x = 5
它就不会返回 true,因此 if 语句不会运行代码。
出于某种原因,它往往会在x = 7
上返回 true。
编译器的错误,我相信它只是 g++ 编译器(这是在比赛中)。
任何减轻这种情况的方法或为什么这样做将不胜感激。
使用 printf 样式的语法打印各种整数类型需要可怕的语法 - 我建议改用C++类型安全的 iostreams。