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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yq648915965 初级黑马   /  2016-9-9 23:16  /  1411 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

13 个回复

倒序浏览
不能沉    !!!!!一定要让大神看到
回复 使用道具 举报
/*
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 + "个。");
        }
}

点评

66666666666  发表于 2016-9-13 22:22

评分

参与人数 1黑马币 +2 收起 理由
噜噜吧 + 2 很给力!

查看全部评分

回复 使用道具 举报 1 0
cjc147 发表于 2016-9-9 23:49
/*
3.分析以下需求,并用代码实现:
        (1)按照从大到小的顺序输出四位数中的(个位+百位)=(十位+千位)(3553,2 ...

非常感谢
回复 使用道具 举报
楼上回答的挺多
回复 使用道具 举报
这题目不是很难呀
回复 使用道具 举报
同萌新吗
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报

不能沉    !!!!!一定要让大神看到
回复 使用道具 举报
楼上回答的挺多
回复 使用道具 举报
厉害厉害
回复 使用道具 举报

大神都很厉害
回复 使用道具 举报
小坏孩 来自手机 中级黑马 2016-9-13 22:01:58
13#
有大神就直接解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马