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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 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);
}
}
夯哥就是牛,大牛!



12 个回复

倒序浏览
说个笨办法     用四个for循环      然后再慢慢判断
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
还行 已经分析出来呢
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
回复 使用道具 举报
4层循环嵌套+几个条件判断
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
leojr 发表于 2016-11-2 07:06
4层循环嵌套+几个条件判断

这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
leojr 中级黑马 2016-11-2 09:52:55
7#
zhangpanqin 发表于 2016-11-2 08:59
这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法

朋友加个qq把你的方法告诉我呗,我实现了一下,挺麻烦的复制了好多集合和判断1,3是否相邻用了很多if,才实现
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
leojr 中级黑马 2016-11-2 09:54:24
8#
zhangpanqin 发表于 2016-11-2 08:59
这个题想想挺简单,第一次做想的太复杂,你有时间可以试试别的方法

我q530547271
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
电脑上不了网,先发个截图

来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
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);
}
}
回复 使用道具 举报
···夯家军在此~~~~~
回复 使用道具 举报
自己做做看
回复 使用道具 举报
真 会玩  啊   点个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马