c++ - Printing a value makes the program work? -
#include <iostream> #include <cstdio> using namespace std; bool numar(unsigned long long n) { return (n > 99) && ((n % 100) == 25); } int main() { freopen("numere.in", "r", stdin); freopen("numere.out", "w", stdout); int cnt = 0; unsigned long long n, a, nblabla, n; while (scanf("%d", &n) == 1) { if (numar(n)) { = (n - 25) / 100; cout << a; // son of *****. (n = 1; true; n++) { nblabla = n * (n + 1); if (nblabla > a) break; else if (nblabla == a) { cnt++; } } } } printf("%d", cnt); return 0; }
simply, if comment line (cout << a;
), program stops working. if leave there, works.
i'm using code::blocks, gnu gcc.
this checks if number square of number ends digit 5
. (base 10) (i not allowed use square roots)
before asking, no, isn't homework. submission subject of online contest.
can tell me why happening?
with %d
format, scanf
try read pointer int
. &n
pointer unsigned long long
. leads undefined behavior, reason of strange result.
the right format %llu
.
Comments
Post a Comment