A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lfs454766767 中级黑马   /  2014-8-19 14:51  /  1160 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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)这样五组

4 个回复

倒序浏览
只考虑连续递增这种情况的话,代码如下:
  1. public class Test {
  2.         public static void main(String agrs[]) {
  3.                 int[] numbers = {28,29,30,35,36,37,87,88,101,102,103,104,105,106};
  4.                 for (int i = 0; i < numbers.length; i++) {
  5.                         if (i == 0) {
  6.                                 System.out.print("(" + numbers[i]);
  7.                         }
  8.                         else if (numbers[i] == numbers[i - 1] + 1) {
  9.                                 System.out.print("," + numbers[i]);
  10.                         }
  11.                         else {
  12.                                 System.out.println(")");
  13.                                 System.out.print("(" + numbers[i]);
  14.                         }
  15.                        
  16.                         if (i == numbers.length - 1)
  17.                                 System.out.print(")");
  18.                 }
  19.       
  20.         }
  21. }
复制代码

如果还要考虑连续递减,加一个flag变量判断一下就行了
回复 使用道具 举报
fantacyleo 发表于 2014-8-19 15:18
只考虑连续递增这种情况的话,代码如下:

如果还要考虑连续递减,加一个flag变量判断一下就行了 ...

太感谢你了!
回复 使用道具 举报
本帖最后由 happymouse 于 2014-8-19 16:29 编辑
  1. <blockquote>public class ArrayTest
复制代码
回复 使用道具 举报
  1. public class ArrayTest
  2. {
  3.         public static void main(String[] agrs)
  4.         {
  5.                 int[] num = { 28, 29, 30, 35, 36, 37, 87, 88, 101, 102, 103, 104, 105, 106 };
  6.                 System.out.print("(" + num[0]);
  7.                 for (int x = 1; x < num.length - 1; x++)
  8.                 {
  9.                         if (num[x] - num[x - 1] != 1)
  10.                         {
  11.                                 System.out.print("),(" + num[x]);
  12.                                 continue;
  13.                         }
  14.                         System.out.print("," + num[x]);
  15.                 }
  16.                 System.out.print("," + num[num.length - 1] + ")");
  17.         }
  18. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马