POJ题目----X星球身份证问题
2010-05-31 16:00
323 查看
描述:
在X
星球上的外星人和地球上一样拥有一个长
N
位的身份证号码,而
X
星球的人使用的是一种
26
进制身份证号码,用
a~z
表示。
在X
星球上正在举行一次幸运者抽奖活动,
X
星球的政府首脑制定了一个特殊的抽奖规则,凡是身份证号码符合对称性质(回文串)的人就能够成为本次活动的幸运 者。
现在你知道X
星球中最大的身份证号码,希望你能够计算出最多有多少人将成为本次活动的幸运者。
输入:
输入数据的第一行为一个正整数N
,第二行为一个长度为
N
的字符串,表示已知的最大身份证号码
.
其中 N <= 30
输出:
本次活动的最大幸运人数模10000
的结果
.
样例输入:
3
bca
样例输出:
28
自己写的代码:
在X
星球上的外星人和地球上一样拥有一个长
N
位的身份证号码,而
X
星球的人使用的是一种
26
进制身份证号码,用
a~z
表示。
在X
星球上正在举行一次幸运者抽奖活动,
X
星球的政府首脑制定了一个特殊的抽奖规则,凡是身份证号码符合对称性质(回文串)的人就能够成为本次活动的幸运 者。
现在你知道X
星球中最大的身份证号码,希望你能够计算出最多有多少人将成为本次活动的幸运者。
输入:
输入数据的第一行为一个正整数N
,第二行为一个长度为
N
的字符串,表示已知的最大身份证号码
.
其中 N <= 30
输出:
本次活动的最大幸运人数模10000
的结果
.
样例输入:
3
bca
样例输出:
28
自己写的代码:
import java.util.Scanner; public class IdentityCard { private static final String letter = "abcdefghijklmnopqrstuvwxyz"; public static void main(String[] args) { Scanner s = new Scanner(System.in); int n = Integer.parseInt(s.nextLine()); String string = s.nextLine(); System.out.println(count(string, n) % 10000); } public static int count(String s, int n) { int sum = letter.indexOf(s.charAt(0)); if (n < 2) return 0; else if (n == 2) { if(s.charAt(0)<=s.charAt(1)) sum += 1; } else if (n == 3) { if (sum != 0) { for (int i = 0; i < (n - 1)/ 2 ; i++) sum *= 26; sum += letter.indexOf(s.charAt(1)); if (s.charAt(0)<=s.charAt(2)) sum += 1; } } else { if (sum != 0) { for (int i = 0; i < (n - 1)/ 2 ; i++) sum *= 26; if (n % 2 != 0) sum *= 26; } s = s.substring(1, s.length() - 1); sum += count(s, n - 2); } return sum; } }
相关文章推荐
- 0-1背包问题入门小结 动态规划(DP)经典题目 POJ324 POJ1276
- 0-1背包问题入门小结 动态规划(DP)经典题目 POJ324 POJ1276
- POJ 2585 Window Pains(窗口的颜色显示问题,拓扑排序,经典题目)
- [省选前题目整理][POJ 1830]开关问题(XOR方程组高斯消元)
- POJ 题目3984 迷宫问题(BFS)
- POJ 3347 Kadj Squares 复杂的线段相交问题。这个题目是计算几何的扩大数据运算的典型应用 有时候扩大数据范围避免浮点误差,这个题就是应用
- 0-1背包问题入门小结 动态规划(DP)经典题目 POJ324 POJ1276
- poj 题目1321 棋盘问题
- POJ 题目1276 Cash Machine(多重背包问题)
- POJ 题目1321 棋盘问题(DFS)
- POJ3624 0-1 背包问题
- 火车进站问题的求解——华为OJ高级难度题目
- BFS-POJ-3984-迷宫问题
- 【POJ】1101 - The Game(bfs,连连看问题)
- POJ 1129 Channel Allocation 平面图染色问题
- C++内存问题(很多公司面试的题目,值得一看,看懂了别忘了告诉我)
- poj 1088 滑雪问题
- 经典POJ题目
- POJ 3984 迷宫问题 广搜记录路径
- POJ 1321 棋盘问题