要求如下:
输入:任意一个整数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类型时数字超过九位会报错,希望大家指教。
分享到:
相关推荐
在这个题目中,我们需要将一个十进制的正整数转换为另一个d进制数,其中d的范围是2到9。 ### 2. C语言基础知识 #### 2.1 变量声明与初始化 在C语言中,变量需要先声明后使用。例如: ```c int i = 0, N, d; ``` ...
在编程领域,计算任意两个整数之间的和是一个基础且常见的任务。这个任务涉及到的主要知识点包括数据类型、算术运算以及循环结构。以下是对这些概念的详细解释: 1. **数据类型**:在大多数编程语言中,整数是一种...
首先,我们要明确,这个问题的核心是将整数转换为字符串,然后遍历字符串以计算"0"字符的个数。这是因为整数本身并不直接存储其内部的字符表示,而是以二进制形式存储。因此,我们需要通过某种方式将其转换为可以...
2. **读取输入**:通过`scanf`函数从用户那里读取一个非负整数。 3. **转换过程**: - `while (a)`循环中,每次迭代都会计算当前值除以8的余数,并将其压入栈中。 - 接着更新`a`的值,使其等于除以8的商。 - 这个...
2. 输入任意两个整数 3. 选择运算法(加法或乘法) 4. 输出结果 测试结果: 1. 123456 + 1234567 = 2469133 2. 123456 * 1234567 = 152415787202 五、源程序 源程序包括主函数和头文件。主函数用于输入任意长...
这可能涉及到将一个正整数转换为字符串,然后逐个访问字符,或者通过数学运算来实现。本篇文章将详细探讨如何在Java中实现这一功能,以满足各种场景的需求。 首先,我们可以使用Java的Integer类提供的toString()...
2. 将输入的整数转换为单链表结构,并进行加法运算; 3. 将加法运算的结果输出,按照中国人的习惯,每四位一组,组间用逗号隔开。 程序系统实现 本程序包含三个模块: 1. 主程序模块: void main(){ 初始化; ...
在C#编程语言中,实现从键盘输入三个整数并按从小到大的顺序输出是一个常见的编程练习。本篇文章将详细解析这一过程,并深入探讨其中涉及到的关键技术点。 #### 程序结构分析 根据提供的代码片段,我们可以看到这...
设计算法把一个十进制整数转换为二至九进制之间的任意进制数输出
在桂电计算机组成原理的课程设计中,学生们被要求构建一个基于CISC(复杂指令集计算机)模型的嵌入式系统。这个系统的核心任务是处理一个包含五个有符号整数的数组M,并计算其中所有负数的平方和。这是一个典型的...
初始值分别为65535(一个较大的整数)和0,这样可以确保任何输入的正整数都会小于或等于`min`,大于或等于`max`。 - `aver`:用于存储最终的平均值。 #### 3.2 输入处理循环 ```c scanf("%d", &a); while (a != 0) ...
对于输入的任意一个非负十进制整数,打印输出与其等值的八进制数。java代码实现源码。
1. **输入/输出**:设计友好的方法将大整数转换为字符串,以便于打印和读取。 2. **基本运算**:加法、减法、乘法和除法的实现。这些运算需要考虑进位和借位的情况,可能需要递归或迭代的方式来完成。 3. **比较操作...
1. 设计一个程序,能够处理任意长度的长整数。 2. 输入格式遵循中国习惯:每四位一组,逗号分隔,以分号结束。 3. 程序应支持四种基本运算:加法、减法、乘法和除法。 4. 输出结果同样按照中国长整数格式显示。 5. ...
2. **读取输入**:使用`Func_GetNum`函数,将输入的字符串形式的大整数转换成链表结构。此函数会根据每四个字符创建一个新节点,并将这四个字符复制到节点的`Number`字段中。 3. **执行加法**:`Func_Add`函数负责...
根据给定文件的信息,本文将详细介绍如何实现一个数值转换函数,该函数能够将一个十进制整数转换为16进制以内的任意进制数。我们首先从基础概念出发,然后逐步深入到具体的实现细节。 ### 基础概念 在计算机科学中...
输入一个十进制数N,将它转换成R进制数输出。 输入 输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2, R != 10)。 输出 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应...
要将一个十进制整数转换为十六进制,我们可以采用以下步骤: 1. **除16取余法**:这是最直观的方法,也被称为“长除法”。将十进制数除以16,得到商和余数。商再除以16,如此重复,直到商为0。每次得到的余数就是...
在此任务中,我们需要将一个长整型(Long Integer)的正整数n,比如7654321,转换为"7,654,321"这样的形式。 在C++、Java、Python等常见编程语言中,可以使用内置的字符串处理函数或者自定义逻辑来实现这个功能。...