黑马程序员技术交流社区
标题: java 对不连续一组数字进行分组 [打印本页]
作者: lfs454766767 时间: 2014-8-19 14:51
标题: java 对不连续一组数字进行分组
本帖最后由 lfs454766767 于 2014-8-20 08:16 编辑
同学问我这样一道题,有会的没?
如
28,29,30,35,36,37,87,88,101,102,103,104,105,106
以上是一串数字,数字连续在一起的分成一组,共有5组
请教高手如何分组成(28,29,30) (35,36,37) (87,88) (101,102,103,104,105,106)这样五组
作者: fantacyleo 时间: 2014-8-19 15:18
只考虑连续递增这种情况的话,代码如下:
- public class Test {
- public static void main(String agrs[]) {
- int[] numbers = {28,29,30,35,36,37,87,88,101,102,103,104,105,106};
- for (int i = 0; i < numbers.length; i++) {
- if (i == 0) {
- System.out.print("(" + numbers[i]);
- }
- else if (numbers[i] == numbers[i - 1] + 1) {
- System.out.print("," + numbers[i]);
- }
- else {
- System.out.println(")");
- System.out.print("(" + numbers[i]);
- }
-
- if (i == numbers.length - 1)
- System.out.print(")");
- }
-
- }
- }
复制代码
如果还要考虑连续递减,加一个flag变量判断一下就行了
作者: lfs454766767 时间: 2014-8-19 15:27
太感谢你了!
作者: happymouse 时间: 2014-8-19 16:18
本帖最后由 happymouse 于 2014-8-19 16:29 编辑
- <blockquote>public class ArrayTest
复制代码
作者: happymouse 时间: 2014-8-19 16:29
- public class ArrayTest
- {
- public static void main(String[] agrs)
- {
- int[] num = { 28, 29, 30, 35, 36, 37, 87, 88, 101, 102, 103, 104, 105, 106 };
- System.out.print("(" + num[0]);
- for (int x = 1; x < num.length - 1; x++)
- {
- if (num[x] - num[x - 1] != 1)
- {
- System.out.print("),(" + num[x]);
- continue;
- }
- System.out.print("," + num[x]);
- }
- System.out.print("," + num[num.length - 1] + ")");
- }
- }
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |