题目:f(x)=5*x^13+13*x^5+k*a*x,输入k的值,a是对任意的x都满足f(x)=5*x^13+13*x^5+k*a*x,要是a存在则输出a,否则输出“no”.
分析:很明显,f(x)是关于x 的函数,是由三项相加而成,二前两项都是x的65倍数,最后一项是x的k*a倍,要对任意的x都满足f(x),则f(x)必是65的倍数,故可以通过判断f(1)%65==0是真还是假,就可以知道a是否存在,在判断过程中需要一个标识变量flag来记录if(f(1)%65==0)的判断结果,flag==0表示a不存在,flag==1,表示a存在。
心得;题目很水,但再水的题只有够细心和用心才能达到做题的目的,学到东西,积累实力。
代码:
#include<stdio.h>
#include<math.h>
int a,k;
int f(int x)
{
return(5*pow(x,13)+13*pow(x,5)+k*a*x);
}
int main()
{
int flag;
while(scanf("%d",&k)!=EOF)
{
flag=0;
for(a=1;a<100;a++)
{
if(f(1)%65==0)
{
printf("%d\n",a);
flag=1;
break;
}
}
if(!flag)
printf("no\n");
}
return 0;
}