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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
        数组习题:
                数据加密:
                某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,
        加密规则如下:
                首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
                最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,然后,把加密后的结果在控制台打印出来。
*/
import java.util.*;
class Test2
{
        public static void main(String[] args)
        {
                Scanner input=new Scanner(System.in);//调用系统输入方法。
                System.out.println("请输入1-7位的数字密码:");
                int num=input.nextInt();//接收输入的数字
               
                int[] arr=new int[8];//因为输入的数字最多为7位,所以定义一个长度为8的数组
                int index=0;//定义数组角标index,初始化值为0

                while(num!=0)//因为不知道要循环的次数,所以用while循环
                {
                        arr[index]=num%10;//这是对数组的元素进行倒序方法。
                        num/=10;
                        index++;
                }
                System.out.println(index);//打印出数组长度。

                for (int i=0;i<index;i++)//遍历数组
                {
                        arr[i]=(arr[i]+5)%10;//将每个元素加5后再除以10的余数定义i为新的元素
                        System.out.print(arr[i]);
                }
                System.out.println();

                int temp=0;                 //调换第一个元素和最后一个元素。
                temp=arr[0];                                //得到一个新的数组。
                arr[0]=arr[index-1];
                arr[index-1]=temp;
               

                for (int i=0;i<index;i++)   //最后遍历最终数组
                {
                        System.out.print(arr[i]);
                }
        }
}

3 个回复

倒序浏览
两个数交换可以用三元表达式,虽然我忘了:lol
回复 使用道具 举报
从未有过的晴天 发表于 2014-7-24 11:54
两个数交换可以用三元表达式,虽然我忘了

:lol具体是哪一步可以用三元表达式?美女,你说的三元表达式是指:true?a:b这样的格式吗?
回复 使用道具 举报
Scanner input=new Scanner(System.in);//调用系统输入方法。
System.out.println("请输入1-7位的数字密码:");
  int num=input.nextInt();//接收输入的数字
改为:int num;
         scanf("%d",&num);//输入密码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马