大概思路:判断字符串中是否有两位数的数字,若没有,则为一种情况,若有,则是另外一种情况。
判断条件为:将字符串只有个位数的特征。
题目1 : 漏写的数字
时间限制:
10000ms
单点时限:
1000ms
内存限制:
256MB
-
9111213
样例输出
-
10
描述
小A今年刚上幼儿园,正在学习写100以内的数字。幼儿园的老师留了一项作业,要求小A从某个100以内的数X开始一直写到另一个100以内的数Y(Y - X > 1)。
不过粗心的小A在作业中漏写了一个整数(好在小A漏写的不是X,并且至少写下了2个整数)。给定小A写下的数字串,你能求小A漏写的数字是多少吗?
输入
一个只包含数字的字符串。注意小A至少写下了两个数。
输出
小A漏写的数字。
import java.util.Scanner;
public class Loushuzi {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
String[] ss = s.split("");
int i = ss.length;
int a = Integer.valueOf(ss[i - 1]);
int b = Integer.valueOf(ss[i - 2]);
int c = Integer.valueOf(ss[i - 3]);
int result = 0;
if ((c + 1) == (a - 1) && b == (a - 1) && b == (c + 1)) {
int j = ss.length;
for (int k = 0; k < j; k++) {
int n = Integer.valueOf(ss[k]);
int m = Integer.valueOf(ss[k + 1]);
if ((n + 1) != m) {
result = n + 1;
break;
}
}
}
else {
while (i > 0) {
int n = Integer.valueOf(ss[i - 1]) + Integer.valueOf(ss[i - 2]) * 10;
if ((n - 1) > 10) {
int m = Integer.valueOf(ss[i - 3]) + Integer.valueOf(ss[i - 4]) * 10;
if ((n - 1) != m) {
result = n - 1;
break;
}
i = i - 2;
} else {
int m = Integer.valueOf(ss[i - 3]);
if ((n - 1) != m) {
result = n - 1;
break;
}
i--;
}
}
}
if(result == 0)
result = Integer.valueOf(ss[ss.length - 1]) + 1;
System.out.println(result);
}
}