洛谷P2141 珠心算测验 题解
Summary
洛谷 P2141 珠心算测验 的题解,
算法为 模拟 .
Link
Text
基本思路是两重循环, 枚举 a,a+b, 然后判断 a 存不存在,b 存不存在,a+ b 存不存在.
Code
#include <stdio.h>
int main()
{
int a[30020],b[105],c=0,n;
for (int i=0;i<30020;i++) a[i]=0;//初始化(0表示不存在)
scanf ("%d",&n);
for (int i=0;i<n;i++)
{
scanf ("%d",&b[i]);//输入b[i]
a[b[i]]=1;//现在有了b[i]
}
for (int i=0;i<n;i++)//循环a+b的值(b[i])
{
for (int j=1;j<b[i];j++)//循环a,b[i]-a就是b
{
if (a[j]/*a存不存在*/&&a[b[i]-j]/*b存不存在*/&&j!=b[i]-j/*a!=b*/)
{
c++;//累加
break;//跳出循环(要注意多种a+b只要和相同就只算一次,所以找到一种就跳出循环!!!)
}
}
}
printf ("%d",c);
return 0;
}