UVA11934

· · 题解

已知 f(x)=ax^2+bx+c。求,有多少个 f(i) 可以被 d 整除,其中 i\in [0,L]i 为整数。多组数据。

因为给出的 L \lt 1000,从 0 开始枚举并计算就行。总体实现难度不高。当 d=0 时结束程序,因为这种情况仅有 a=b=c=d=L=0 才会出现。输出时,最后一组数据的答案后需要保留换行符。

下面是核心部分示例代码。

void calc(){
 ll a,b,c,d,l,r=0;
 cin>>a>>b>>c>>d>>l;
 if(d==0)exit(0);
 for(ll i=0,fx=i*i*a+i*b+c;i<=l;i++,fx=i*i*a+i*b+c)
 r+=(fx%d==0);cout<<r<<"\n";
}