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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小灬清新丶 中级黑马   /  2015-7-7 19:34  /  912 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
        在传递过程中需要加密,加密规则如下:
                首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
                最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
                然后,把加密后的结果在控制台打印出来。
题目要求:
                1.数据是小于8位的整数
                        定义一个int类型的数据
                        int number = 123456
                2.加密规则
                        a。首先将数据倒叙
                                结果:654321
                        b。将每位数字都加上5,再用和除以10的余数代替该数字
                                结果:109876
                        c。将第一位和最后一位数字交换
                                结果:609871
                3,输出结果在控制台

                通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。
                        不是直接写成下个数组:
                                int[] arr = {1,2,3,4,5,6}
                如何把数据转成数组
                        1,定义一个数据
                                int number = 123456
                        2.定义一个数组,问题:数组的长度是多少呢?
                                int{} arr = new int [8]; //不可能超过8
                                在赋值的时候,我用一个变量记录索引的变化。
                                定义一个索引值是0
                        3.获取每一个数据
                                int ge = number%10
                                int shi = number/10%10
                                int bai = number/10/10%10

                                arr [index] = ge;
                                index++
                                arr [index] = shi;
                                index++
                                arr [index] = bai;
                                。。。
代码实现:
import java.util.Scanner;
class SikaoDemo2
{
        public static void main(String[] args)
        {
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in);
                //用户输入数据
                System.out.println("请输入一个数据(八位以内):");
                int number = sc.nextInt();
               
                //些功能实现把number进行加密
                //调用
                String result = JiaMi(number);
                System.out.println("加密后的结果是:"+result);
        }

        /*
                需求:写一个功能,把数据number实现加密
                两个明确:
                        返回值类型        String 做一个字符串的拼接
                        参数列表 int number       
        */

        public static String JiaMi(int number)
        {
                //定义数组
                int[] arr = new int[8];
                //定义索引
                int index = 0;
                //把number中的数据想办法放到数组中
                while (number>0)
                {
                        arr[index] = number%10;
                        index++;
                        number/=10;
               
                }
                //把每个数据加5,然后对10取出余数
                for (int x= 0;x<index ;x++ )
                {       
                        arr[x]+=5;
                        arr[x]%=10;
                }
                //把最后一位和第一位交换
                int temp = arr[0];
                arr[0] =arr[index-1];
                arr[index-1] = temp;
                //把数组的元素拼接成一个字符串返回
                //定义一个空内容的字符串
                String s ="";

                for (int x=0 ;x <index ;x++ )
                {
                        s+=arr[x];       
                }
                return s;
        }
                       
}

7 个回复

倒序浏览
非常好,谢谢分享
回复 使用道具 举报
谢谢分享!
回复 使用道具 举报
很棒,谢谢分享,看懂了,!!!赞!赞!!!!!!
回复 使用道具 举报
符合正常人的思维习惯
回复 使用道具 举报
谢谢分享,当复习了!
回复 使用道具 举报
感谢分享 学习了
回复 使用道具 举报
18295718171 来自手机 中级黑马 2015-7-7 23:34:42
8#
不错!谢谢分享!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马