代码在哪里错了?

时间:2014-11-14 19:52:05

标签: c

我试图从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;
}

法官的回应

在线提交过程告诉我,我的代码产生了错误的答案,但我无法弄清楚原因。任何人都可以在我的代码中看到错误吗?

1 个答案:

答案 0 :(得分:1)

你遇到的第一个问题是你误解了问题陈述 您应该计算square的数字,而不是square root 如果square root是整数,则只有square number

获取正确计数的另一种方法实际上是计算square,而不计算ab但从square root of a到{{1}的数字}。