黑马程序员技术交流社区

标题: 请教:循环语句的作业 [打印本页]

作者: yq648915965    时间: 2016-9-9 23:16
标题: 请教:循环语句的作业
新手求教:
1.分析以下需求,并用代码实现:(1)按照从大到小的顺序输出四位数中的个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及个数
                                                  (2)每行输出5个满足条件的数,之间用空格分隔
                                                  (3)如:9999 9988 9977 9966 9955  
弱弱的我,始终没思路,不知道怎么去实现。用水仙花不太会用啊 ,大神帮帮忙!谢谢啦

作者: yq648915965    时间: 2016-9-9 23:28
不能沉    !!!!!一定要让大神看到
作者: cjc147    时间: 2016-9-9 23:49
/*
3.分析以下需求,并用代码实现:
        (1)按照从大到小的顺序输出四位数中的(个位+百位)=(十位+千位)(3553,2332,1166,8228,3773)的数字及个数
        (2)每行输出5个满足条件的数,之间用空格分隔
        (3)如:9999 9988 9977 9966 9955

分析:
        定义一个变量记录满足条件的数字个数,初始化值为 0
        定义一个变量记录一行输出数字的个数,初始化值为 0
        从大到小的顺序操作四位数,所以循环可以从 9999 - 10000 进行
        在循环体中提取出四位数的各个位置上的数字
        进行条件判断:(个位+百位)=(十位+千位)
                记录++
                输出个数++
                输出这个满足条件的数字
                如果记录输出数字个数的数 >= 5
                        记录输出数字的数归 0
                        输出一个换行符
        输出满足条件的个数
*/

class Demo3 {
        public static void main(String[] args) {
                int num = 0;                                                                //记录满足条件的数字个数
                int count = 0;                                                                //记录一行输出数字的个数

                for (int i = 9999;i >= 1000 ;i-- ) {
                        int tho = i / 10 / 10 / 10 % 10;        //千位
                        int hun = i / 10 / 10 % 10;                        //百位
                        int ten = i / 10 % 10;                                //十位
                        int sin = i % 10;                                        //个位

                        if ((sin + hun) == (ten + tho)) {
                                num++;
                                count++;
                                System.out.print(i + " ");
                               
                                if (count >= 5) {
                                        count = 0;
                                        System.out.println();
                                }
                        }
                }
               
                System.out.println("---------------------------");
                System.out.println("四位数中的(个位+百位)=(十位+千位)的数字个数有:" + num + "个。");
        }
}

作者: yq648915965    时间: 2016-9-11 00:30
cjc147 发表于 2016-9-9 23:49
/*
3.分析以下需求,并用代码实现:
        (1)按照从大到小的顺序输出四位数中的(个位+百位)=(十位+千位)(3553,2 ...

非常感谢
作者: 496073719    时间: 2016-9-12 14:35
楼上回答的挺多
作者: 梦想的小草    时间: 2016-9-12 20:18
这题目不是很难呀
作者: 冷冷冷白    时间: 2016-9-12 21:14
同萌新吗
作者: itcoder    时间: 2016-9-12 22:01
顶顶顶顶顶顶顶顶顶顶顶
作者: 流空有痕    时间: 2016-9-12 22:30

不能沉    !!!!!一定要让大神看到
作者: 流空有痕    时间: 2016-9-12 22:32
楼上回答的挺多
作者: 流空有痕    时间: 2016-9-12 22:36
厉害厉害
作者: yq648915965    时间: 2016-9-13 21:58
流空有痕 发表于 2016-9-12 22:36
厉害厉害

大神都很厉害
作者: 小坏孩    时间: 2016-9-13 22:01
有大神就直接解决了




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