题解 P4325 【[COCI2006-2007 Contest1] Modulo】
一边读入一边记录进桶,a[x%42],把所有%42后的答案记录下来,
最后一遍循环统计:
i=0..41 a[i]==1 ans++
意思就是枚举0~41(所有数%42都只会得出0~41),如果这十个数中有一个数%42等于枚举的数(因为一开始已经记录进a数组,所以直接判断a),计数器就加1.
#include<cstdio>
using namespace std;
int ans,a[42],x;
int main()
{
for (int i=1;i<=10;i++)//循环(十个数)十次
{
scanf("%d",&x);//输入
a[x%42]=1;//记录进桶
}
for (int i=0;i<42;i++)
//枚举,记住0也要枚举,0或42的倍数%42都等于0
if (a[i]) ans++; //计数器+1
printf("%d",ans);//愉快输出
return 0;
}
----————求通过————----