一、问题描述
为祝贺新一批的研究生入学,队长让大家为新人命题训练其程序设计能力。有人问队长能不能黑,队长说可以黑但是不能黑那啥。大家很失望 2333 ,于是 calfcamel 决定出一道 2333 的题目。

给你一个小于 60 位的整数 p ,求大于 p 的最小的数 p1 ,使得 p1 中包含数 2333 。
输入数据

输入数据的第一行为一个正整数 T ,表示有 T 组数据。随后的 T 行中每行包括一个小于 60 位的整数 p ( T <= 50 , 1 <= p <10^60 ,即 10 的 60 次方)。
输出数据

对每组输入数据单独输出一行结果,第 x 行结果形如 ”Case #x: a“ ,其中 x 为组号,从 1 开始, a 为对应的结果。
样例输入

2
100
1000000000000

样例输出

Case #1: 2333
Case #2: 1000000002333

二、解决方案:
题目要求输出比原数大的最小整数且包含2333,一定注意题目要求的是大于p,不包含等于,所以当你输入2333的时候应该返回12333,当输入23334的时候应该返回23335。最容易想到的方法就是在原数的基础上循环加1,直到新的数中包含2333为止。
那么我们该使用什么类型的数据呢?输入的整数p有可能达到60位,而我们知道int型变量占4个字节,32位,最大能表示的数为:2^32-1= 4 294 967 295;很显然是远远达不到的,那么long呢?long变量占8个字节,64位,最大能表示的数为2^64-1= 1.844674407371e+19 也是不够的,所以只能考虑使用String类型,这时候令人头疼的是如何使用String类型的变量能像整数那样加1且合理进位?
想象整数如何加1的,首先获取字符串的最后1位last,应该判断last是否为9,如果last为9,则将last=0,则last前面1位需要加1,前面1位加1之后就得到了新的数字,可以判断该数是否包含2333了,但是当前面1位也是9时,就要设置这一位为0,并继续将其前面一位加1,如此循环知道加到第一位,若第一位也为9,设置第一位为0,拼接在字符串前面一个1,并继续按照上面思路循环…
其中我们可以很轻松的得到若输入小于2333的数,一定输入2333,若输入数为4位且大于等于2333,则一定输入12333,故我们在加1循环之前可以先判断输入的整数p是否为小于4位的数,这样能提高计算效率。
三、核心代码
if (sdata.length() <= 4) {// 当数据位数为4位及以下时
int idata = Integer.parseInt(sdata);
if (idata < 2333) {
System.out.println(“Case #” + index + “: " + 2333);
} else {
System.out.println(“Case #” + index + “: " + 12333);
}
}
//字符串的加1函数
public static String add(String str){
char[] chars = str.toCharArray();
int len = chars.length;
for (int k = len - 1; k >= 0; k–) {//对字符串的位数循环,直到第一位
int a = Integer.parseInt(String.valueOf(chars[k]));
if (a == 9 && k!=0) {//当该位置数已经为9,且不是第一位,则需要将该位置0
chars[k] = ‘0’;
continue;//继续下一轮循环
} else if(a9&&k0){
//当该位置数已经为9,且是第一位,则需要将该位置0,且在字符串之前拼接上1,生成新的字符串,继续循环
chars[k] = ‘0’;
str=“1”+new String(chars);
chars = str.toCharArray();
len = chars.length;
// System.out.println(“newSdata->”+sdata+”,newLen->”+len);
break;
}else{//若该位不是9,则该位数加1,跳出循环,返回新的字符串
a++;
chars[k] = (char) (a + ‘0’);
str = new String(chars);
break;
}
}
return str;
}

calfcamel的2333(java)相关推荐

  1. calfcamel 的 2333

    题面描述: 为祝贺新一批的研究生入学,队长让大家为新人命题训练其程序设计能力.有人 问队长能不能黑,队长说可以黑但是不能黑那啥.大家很失望 2333,于是 calfcamel 决定出一道 2333 的 ...

  2. GSON - JSON的拓展

    GSON使用概述 GSON弥补了JSON的许多不足的地方,在实际应用中更加适用于Java开发.在这里,我们主要讲解的是利用GSON来操作java对象和json数据之间的相互转换,包括了常见的对象序列化 ...

  3. java游戏2333整合包,我的世界魔法荣耀

    <我的世界魔法荣耀懒人包>是由玩家以神秘时代.魔法为主题进行整合的一款懒人包.该懒人包玩法丰富,加入了多种不同的有趣模组,玩家可以体验一个内容丰富的MC世界,去寻找昔日的魔法荣光. [游戏 ...

  4. Effective.Java第23-33条(泛型相关)

    23.  类结构层次优于标签类 有时你会碰到一个类,它的实例有一个或多个风格,并且包含一个tag属性表示实例的风格.例如,如下面的类表示一个圆或者矩形: public class Figure {/* ...

  5. java游戏2333整合包,[1.12.2][CatServer]基础插件简单MOD冰与火传说整合服务端

    包含内容: 插件列表: 彩色标语-MOTDColor1.7.X 传送君TPAPro v1.2 登陆AuthMe-5.6.0-SNAPSHOT 服务器优化LaggRemover-2.0.5 更多声音pl ...

  6. java 泛型 父子,Java泛型-mb601cf8a78cc07的博客-51CTO博客

    Java泛型 泛型类 即把不确定的数据元素类型用一个泛型占位符表示@Data public class Person { private T name; private T address; }Per ...

  7. Java学习总结:15

    Object类 Object类的基本定义 Object类是所有类的父类,也就是说任何一个类在定义时如果没有明确地继承一个父类,那它就是Object类的子类. 取得对象信息:toString() 在Ob ...

  8. java web服务与配置,Java Web远端服务器的配置与部署

    写在前面 首先说使用云服务器和我们使用自己的PC电脑其实是差不多的,只是我们在服务器上运行的一些软件都是提供网络服务的.在本文中,我们首先了解一些远端服务器的控制工具,然后了解一下服务器的整体配置,最 ...

  9. java反序列化 exp_java反序列化-ysoserial-调试分析总结篇(4)

    1.前言 这篇文章继续分析commoncollections4利用链,这篇文章是对cc2的改造,和cc3一样,cc3是对cc1的改造,cc4则是对cc2的改造,里面chained的invoke变成了i ...

最新文章

  1. #地形剖面图_高中地理——每日讲1题(地形剖面图)
  2. Lunar New Year and Food Ordering
  3. php输出远程文件边读边下载,php file_get_contents读取远程文件并输出
  4. 简单分布式系统构建知识
  5. 数据库工具DBeaver
  6. 金蝶K3运行时错误-2147467238(8000401a)Automation错误
  7. OpenWrt搭建KMS服务(Vlmcsd)
  8. c语言解线性方程组矩阵形势,c语言解线性方程组.docx
  9. 一文读懂机器学习分类全流程
  10. 无人车系统(七):Udacity ‘s无人驾驶仿真环境(社区介绍)
  11. python3刷火车票_Python3实现抢火车票功能(上)
  12. mysql mtq_MySQL调优学习笔记(一、MySQL基础)
  13. MStar平台编译环境安装
  14. EVERYTHING本地搜索工具
  15. Python学习中的Pond是什么
  16. 【产品经理三节课】第1章 产品经理的学习与成长
  17. 3499元起!乐视超级电视引爆量子点电视普及大潮
  18. 阿里云IoT2018年度十佳合作伙伴20强入围企业公布
  19. 2345去除主页锁定的方法
  20. 【2014,上半年是一个转变】

热门文章

  1. linux 权限 c,Linux下获取root权限的c程序
  2. ruby的require, 和in clude有什么区别
  3. 利用ccle数据库构造分类器区分耐药与不耐药样本
  4. 微信 编辑器 后台 英文单词 换行 分开
  5. cad工具箱详细讲解_筑龙网CAD工具箱使用说明
  6. 常见编码格式(中文编码)
  7. Win10触摸板右键无法使用,解决办法
  8. Win11写字板怎么打开?Win11开启写字板的方法
  9. 深度学习分析--TextCNN算法原理及分类实现
  10. cassandra cql解析