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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天面试了,被这道题给坑了,大神给个代码和思路,加上注释!!1拜谢!!!!!
用1、2、3、4这四个数字,用java写一个main函数,打印出所有不同的排列,如:1234、1243等,要求:"4"不能在第一位,"1"与"3"不能相连。

28 个回复

正序浏览
新手来看看。。。。
回复 使用道具 举报
这是用正则写的,正则写会简单很多的
回复 使用道具 举报
感觉好难啊
回复 使用道具 举报
我得好好研究研究
回复 使用道具 举报
霹雳三口组 发表于 2015-9-14 23:32
只想到使用for循环和if语句实现,等看几天视频再看可不可以使用其他方法实现吧,楼上的几个代码使用了还没 ...

厉害,这思路!!!!!!!!!!!!
回复 使用道具 举报
感觉晕晕的
回复 使用道具 举报
本帖最后由 霹雳三口组 于 2015-9-14 23:37 编辑

只想到使用for循环和if语句实现,等看几天视频再看可不可以使用其他方法实现吧,楼上的几个代码使用了还没有学到的知识点。
  1. package Test1;

  2. /**
  3. 用1、2、3、4这四个数字,用java写一个main函数,打印出所有不同的排列,如:1234、1243等,要求:"4"不能在第一位,"1"与"3"不能相连
  4. */
  5. public class Test2 {
  6.         public static void main(String args[]){
  7.                 String str="";
  8.                 for (int x=1;x<4;x++){
  9.                         for (int y=1;y<5;y++){
  10.                                 for(int z=1;z<5;z++){
  11.                                         for(int k=1;k<5;k++){
  12.                                                 //for循环语句得到所有不以4开头的包含1234的组合
  13.                                                 if((x+y+z+k)==10){
  14.                                                         if ((x!=y) & (y!=z) & (z!=k) & (x!=k) &(y!=k) & (x!=z)){
  15.                                                                 //两个if语句得到所有含有1234的组合
  16.                                                                 str=""+x+y+z+k;
  17.                                                                 if (!str.contains("13") & !str.contains("31")){ //排除包含的“13”或者“31”的组合
  18.                                                                         System.out.println(str);
  19.                                                                 }
  20.                                                         }
  21.                                                        
  22.                                                 }
  23.                                                
  24.                                         }
  25.                                 }
  26.                         }
  27.                 }
  28.                
  29.         }

  30. }
复制代码



回复 使用道具 举报
还没学到这呢
回复 使用道具 举报
坐等高高手~
回复 使用道具 举报
新手一看到题就迷茫了
回复 使用道具 举报
全部排出来然后判断
回复 使用道具 举报
应该可以用正则表达式吧,希望有大神来做
回复 使用道具 举报
好像还可以用数组实现把  可以吗?
回复 使用道具 举报
学习了 加油啊
回复 使用道具 举报
15738320440 来自手机 中级黑马 2015-9-14 00:26:59
15#
好,可以用正则表达式吧!
回复 使用道具 举报
很有意思的代码
回复 使用道具 举报
收藏了 加油不气馁
回复 使用道具 举报
看评论。。。
回复 使用道具 举报
好东东。。。。。。。。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马