题目1 : 漏写的数字

大概思路:判断字符串中是否有两位数的数字,若没有,则为一种情况,若有,则是另外一种情况。

判断条件为:将字符串只有个位数的特征。


题目1 : 漏写的数字

时间限制: 10000ms
单点时限: 1000ms
内存限制: 256MB

描述

小A今年刚上幼儿园,正在学习写100以内的数字。幼儿园的老师留了一项作业,要求小A从某个100以内的数X开始一直写到另一个100以内的数Y(Y - X > 1)。  

不过粗心的小A在作业中漏写了一个整数(好在小A漏写的不是X,并且至少写下了2个整数)。给定小A写下的数字串,你能求小A漏写的数字是多少吗?

输入

一个只包含数字的字符串。注意小A至少写下了两个数。

输出

小A漏写的数字。

样例输入
9111213
样例输出
10

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);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值