您的位置:首页 > 其它

HDU 1017

2016-04-30 17:16 288 查看
[align=left]Problem Description[/align]
Given two integers n and m, count the number of pairs of integers (a,b) such that 0 < a < b < n and (a^2+b^2 +m)/(ab) is an integer.

This problem contains multiple test cases!

The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

The output format consists of N output blocks. There is a blank line between output blocks.

[align=left]Input[/align]
You will be given a number of cases in the input. Each case is specified by a line containing the integers n and m. The end of input is indicated by a case in which n = m = 0. You may assume that 0 < n <= 100.

题意:就是数一下再给定范围0到n的数a和b,有多少个满足那个公式得出整数的。(a<b)看已给的样例不容易发现输出规律

看看这个大水坑,怎能不掉。注意输出每输入0 0跳出循环为一组,每组之间有一个空行,最后一组后面没有空行。

#include<cstdio>
using namespace std;
int main()
{
int E,e,s;
double i,j,m,n,sum;
scanf("%d",&e);
while(e--)
{
E=0;
while(~scanf("%lf%lf",&n,&m))
{
E++;
if(n==0&&m==0)
break;
s=0;
sum=0;
for(i=1; i<n; i++)
{
for(j=i+1; j<n; j++)
{
sum=(i*i+j*j+m)/(i*j);
if(sum==(int)sum)
s++;
}
}
printf("Case %d: %d\n",E,s);
}
if(e)
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: