HDU 1098 Ignatius's puzzle
题意:中文翻译其实很简单,就是方程f(x)=5x^13+13x^5+kax;输入任意一个数k,是否存在一个数a,对任意x都能使得f(x)能被65整除。 现假设存在这个数a ,因为对于任意x方程都成立 。
解题思路
1.分析题意,针对于任意的x方程都成立,f(x)能被65整除,所以当x==1时,f(x)=18+ka
2.由于f(x)能被65整除,所以也就是说,18+ka肯定也可以被65整除
3.问题转换为,针对于k,是否存在一个a,可以使18+ka被65整除
4.但是这时去思考一个问题,a的上限是多少,我们应该for循环到什么时候,才可以认为不存在或存在呢?其实问题也很简单,18+ka既然是65的整数倍,那么a最大肯定也就是65了
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner mScanner = new Scanner(System.in);
while (mScanner.hasNextInt()) {
int k = mScanner.nextInt();
boolean flag = false;
for (int i = 1; i < 66; i++) {
if ((18 + i * k) % 65 == 0) {
k = i;
flag = true;
break;
}
}
System.out.println(flag ? k : "no");
}
mScanner.close();
}
}
网友评论