这题一看就觉得很容易写,然后自信满满地写完提交,得到的大概率是PE,这题主要在表达上贼坑,早就听说HDU会有很多题在格式上坑人,名不虚传啊
首先是输入一个N代表测试的组数(这次和往常不一样,开头不是多组输入,后面才要求多组输入),然后是一个空行(由于输入数据都是整型,所以可以无视这个空行,不需要在代码中表现出来),接着就是N组数据的输入,每组以n=m=0为结束标志,然后紧接着输出一个空行,但是最后一组不输出空行,所以这个空行可以在while(N--)的最后面加一个if语句来实现。
以下是我的AC代码:
#include <iostream>
using namespace std;
int main()
{
int n,m,t;
cin >> t; //测试组数
while(t--)
{
int k=0; //题目要求每组都要清零Case 后的那个数字
while(cin >> n >> m) //每组输入不限,直到n=m=0;
{
k++;
if(n==0 && m==0)
break;
int sum=0; //计数器清零
for(int i=1; i<n-1; i++) //满足0<i<j<n 这个条件(题目给的是0<a<b<n)(个人写代码习惯不同而已)
{
for(int j=i+1; j<n; j++)
{
if((i*i+j*j+m)%(i*j)==0) //题目给的表达式,满足就计数器加1
sum++;
}
}
cout << "Case " << k << ": " << sum << endl; //注意空格的表达就好了
}
if(t) //这里控制每组数据的后面加空行,但最后一组不输出空行
cout << endl;
}
return 0;
}