#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))
{
a = (n - 25) / 100;
cout << a; // This son of a *****.
for (N = 1; true; N++)
{
Nblabla = N * (N + 1);
if (Nblabla > a)
break;
else if (Nblabla == a)
{
cnt++;
}
}
}
}
printf("%d", cnt);
return 0;
}
简单地说,如果我注释该行 ( cout << a;
),程序将停止工作。如果我把它留在那里,它会起作用。
我正在使用 Code::Blocks,GNU GCC。
这只是检查一个数字是否是一个以 digit 结尾的数字的平方5
。(以 10 为底)(我不允许使用平方根)
在问之前,不,这不是家庭作业。这是我提交给在线竞赛的一个主题。
谁能告诉我为什么会这样?