黑马程序员技术交流社区

标题: 夜深人静的时候,总会有一段代码让你久久无法入睡 [打印本页]

作者: zhangpanqin    时间: 2016-11-2 00:42
标题: 夜深人静的时候,总会有一段代码让你久久无法入睡
本帖最后由 zhangpanqin 于 2016-11-2 19:20 编辑

已知有四个数字1,2,3,4,问:用这四个数字,能组合出多少种不同的四位数?
        组成的四位数的要求:
                A:必须包含1,2,3,4这四个数字。"1234"
                B:数字1和3不能挨着,4不能开头。
                C:将符合条件的四位数按照"三个一行"的形式打印到控制台。
                D:最终,将符合条件的四位数的 总个数 打印到控制台上
_____________________________________________________________________________________________________________________
挺有意思的一个题package zuoye;
public class Demo1 {
public static void main(String[] args) {
        int count=0;
        for (int i = 1234; i <4000; i++) {
                int ge=i/1%10;
                int shi=i/10%10;
                int bai=i/100%10;
                int qian=i/1000%10;
                if (ge+shi+bai+qian==10&&ge*shi*bai*qian==24&&!(i+"").contains("13")&&!(i+"").contains("31")) {
                        System.out.print(i+"\t");
                        count++;
                        if (count%3==0) {
                                System.out.println();                                
                        }
                }
        }
        System.out.println("\r\n符合条件的总个数为:"+count);
}
}
夯哥就是牛,大牛!




作者: cao791203348    时间: 2016-11-2 00:50
说个笨办法     用四个for循环      然后再慢慢判断

作者: 乌托邦619    时间: 2016-11-2 00:53
还行 已经分析出来呢

作者: 想跳楼    时间: 2016-11-2 01:03
不会啊 搞不出来

作者: leojr    时间: 2016-11-2 07:06
4层循环嵌套+几个条件判断

作者: zhangpanqin    时间: 2016-11-2 08:59
leojr 发表于 2016-11-2 07:06
4层循环嵌套+几个条件判断

这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法

作者: leojr    时间: 2016-11-2 09:52
zhangpanqin 发表于 2016-11-2 08:59
这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法

朋友加个qq把你的方法告诉我呗,我实现了一下,挺麻烦的复制了好多集合和判断1,3是否相邻用了很多if,才实现

作者: leojr    时间: 2016-11-2 09:54
zhangpanqin 发表于 2016-11-2 08:59
这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法

我q530547271

作者: zhangpanqin    时间: 2016-11-2 13:41
电脑上不了网,先发个截图


作者: zhangpanqin    时间: 2016-11-2 19:19
package zuoye;
public class Demo1 {
public static void main(String[] args) {
        int count=0;
        for (int i = 1234; i <4000; i++) {
                int ge=i/1%10;
                int shi=i/10%10;
                int bai=i/100%10;
                int qian=i/1000%10;
                if (ge+shi+bai+qian==10&&ge*shi*bai*qian==24&&!(i+"").contains("13")&&!(i+"").contains("31")) {
                        System.out.print(i+"\t");
                        count++;
                        if (count%3==0) {
                                System.out.println();                               
                        }
                }
        }
        System.out.println("\r\n符合条件的总个数为:"+count);
}
}
作者: 蔡永汪    时间: 2016-11-2 19:36
···夯家军在此~~~~~
作者: 15626187339    时间: 2016-11-2 22:00
自己做做看
作者: 18600071691    时间: 2016-11-2 22:25
真 会玩  啊   点个赞




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2