读书人

USACO Section 1.5.2 [Prime Palindro

发布时间: 2012-10-28 09:54:44 作者: rapoo

USACO Section 1.5.2 [Prime Palindromes] Java题解
题意分析:
找出a和b间既对称既是素数的数。

解题思路:
用递归去解这题。初始数据为单个的0-9和双数的00-99,扔进递归里每次在两边加0-9再递归,直到过长(大于b的长度)。这样每次递归的参数都可能是要的数值,所以递归方法首先要检查是否满足条件,除了要检查是否是素数、是否在[a,b]之间,还要注意有前导零的是不符合条件的。
素数检查代码,一般不需要写到究极,如下的就可用了。

if(tmp % 2 ==0 || tmp %3 == 0) return;for(int i = 5; i*i <=tmp; i+=2){    if(tmp %i == 0)        return;}


代码实现:
https://github.com/leonlu/USACOJavaSolution/blob/master/USACOSection1/src/pprime.java

读书人网 >编程

热点推荐