我试图从UVA Online Judge解决这个问题:http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=2456
平方数是整数,其平方根也是整数。例如,1,4,81是 一些正方形数字。给定两个数字a和b,您将需要找出多少平方数 在a和b之间(包括在内)。
#include <stdio.h>
int main()
{
long long int num1, num2, count = 0;
int t, i;
while (1)
{
count = 0;
scanf("%lld%lld", &num1, &num2);
if (num1 == 0 && num2 == 0)
break;
for (; num1 * num1 <= num2; num1 ++)
count++;
printf("%lld\n", count);
}
return 0;
}
在线提交过程告诉我,我的代码产生了错误的答案,但我无法弄清楚原因。任何人都可以在我的代码中看到错误吗?
答案 0 :(得分:1)
你遇到的第一个问题是你误解了问题陈述
您应该不计算square
的数字,而不是square root
如果square root
是整数,则只有square number
。
获取正确计数的另一种方法实际上是计算square
,而不计算a
到b
但从square root of a
到{{1}的数字}。