要求如下:
输入:任意一个整数A(1234567890)
输出:一个数B,要同时满足如下2条件
1、大于A的最小数
2、使得B数相邻两位的数字不同
举例:10 ===> 12
33 ===> 34
1223 ===> 1230
写了一个方法,代码如下:
public String checkNum(String num,int isAdd){
if(isAdd==1){
num = (Integer.parseInt(num)+1)+"";
}
int count = 0;
String[] str = num.split("");
for(int i=str.length-1; i>0; i--){
int num1 = Integer.parseInt(str[i]);
if(i==str.length-1 && (str.length-1)>1){
int num2 = Integer.parseInt(str[i-1]);
if(num1==num2){
count++;
num1 = num1 + 1;
if(num1>9){
num1=0;
str[i-1] = (num2 + 1) + "";
}
str[i] = num1 + "";
}
}else if((str.length-1)>1 && i==1){
int num2 = Integer.parseInt(str[i+1]);
if(num1==num2){
count++;
num2++;
for(int j=2;j<str.length;j++){
str[j] = 0 + "";
}
str[i+1] = num2 + "";
}
}else if(str.length>2 && i>0){
int num2 = Integer.parseInt(str[i+1]);
int num3 = Integer.parseInt(str[i-1]);
if(num1==num2){
count++;
num2 = 0;
num1 = num1 + 1;
str[i+1] = num2 + "";
str[i] = num1 + "";
}
if(num1==num3){
count++;
num1++;
for(int j=i+1;j<str.length;j++){
str[j] = 0 + "";
}
str[i] = num1 + "";
}
}
}
StringBuffer sb = new StringBuffer();
for(int i=1;i<str.length;i++){
sb.append(str[i]);
}
num = sb.toString();
if(count>0){
return checkNum(num,0);
}else{
return num;
}
}
具体使用在附件里面,是一个jsp文件。
但是我写的方法在转换成Ingeter类型时数字超过九位会报错,希望大家指教。
分享到:
相关推荐
进制转换 把一个任意的十进制正整数 N 转换成 d 进制数。 N 是一个正整数,d 是一个大于 1 小于 10 的整数,二者均由用户输入,且两数字用换行分隔。
解决汉诺塔问题, 用递归法将一个整数n转换成字符串。例如,如入483,应输出字符串“483”。N的位数不确定,可以是任意位整数。 1.3 建立一个包含加法函数、减法函数的动态链接库文件和一个包含加法函数、减法函数...
将非负十进制整数转化为八进制
输入任意一个字符串,将其中的大写字母转换成小写字母。 11. 使用枚举常量编写一个程序。从键盘输入1个月份值(1~12),输出该月份属于哪个 季节。 12. &声明一个哺乳动物类,再派生出狗类,完成并测试这两个类,...
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出
输入一个十进制数N,将它转换成R进制数输出。 输入 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2, R != 10)。 输出 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应...
将一个正整数n(长整型)输出成“千分位”形式,即从个位数起,每三位之间加一个逗号,例如,将7654321输出成7,654,321; 运行.dsw文件后会生成debug文件夹,下面有.exe可以直接运行
该程序的功能是: 运行程序后,读者可以任意输入一个十进制数,然后按回车键, 这时自动给出一个与之相对应的十六进制数
# 给你一个正整数列表 L, 判断列表内所有数字乘积的最后一个非零数字的奇偶性。如果为奇数输出1,偶数则输出0。 # 输入示例 # 输入:L=[2,8,3,50] # 输出示例 # 输出:0 # 解析 # 在上题的基础上的改造题, 这里直接...
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。java代码实现源码。
读入一个浮点数值,转换为金额大写。整数只显示整数部分。含连续0只输出一个“零”。整圆显示“整”。
java代码-任意给出一个十进制整数,将十进制整数转换为二进制数。
任意输入一个十进制整数,包括正数负数,通过程序实现可以输出相应的二进制编码
同时,要求函数能够处理任意长度的字符串作为输入,将字符串中的每个字符转换为其对应的ASCII码值,并将这些ASCII码值相加。此外,函数还需要能够处理列表和元组作为输入,将列表和元组中的所有元素转换为其对应的...
但若这样存,即相当于按 32768 进制数存,在十进制数与 32768 进制数间的转换十分不方便,故可以在每个结点中仅存十进制数的 4 位,即不超过 9999的非负整数, 整个链表被视为万进制。 (2)可以利用头结点数据域的符号...
将一个键盘输入的数字转化成中文输出 input:1234567 output:一百二拾三万四千五百六拾七 input:90000000000 output:九百亿
编写程序,使用函数itob(n,s,b)将输入的整数n,转换成字符串s,将s输出.转换后的字符串从最高的非零位开始输出。如果n为负数,则输出的字符串的第一个字符为’-’。b为大于1小于37的任意自然数值。当b=2时,...
问题描述:试编写算法,实现数值转换:对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。