java中使用数组进行模拟加密的方法
作者:shichen2014 发布时间:2023-11-18 15:37:39
标签:java,数组,加密
现假设某个公司采用公用电话来传递数据,数据是四位的整数,在传递过程中是加密的。
加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
编写一个程序,用于接收一个四位的整数,并且打印输出加密后的数。
这道题原本没有要求必须使用数组,所以我们先是使用一种翻译题目的方法完成这道题的,主要代码如下:
public static void main(String[] args) {
System.out.println("请输入一个4位数字:");
Scanner sc=new Scanner(System.in);
int n=0;
int i=0;
while(true){
n=sc.nextInt();
if(n<999||n>10000){
System.out.println("你输入的数字不合法!请重新输入");
}else{
break;
}
}
int gewei=n%10;
n/=10;
int shiwei=n%10;
n/=10;
int baiwei=n%10;
n/=10;
gewei+=5;
shiwei+=5;
baiwei+=5;
n+=5;
int a=gewei%10;
int b=shiwei%10;
int c=baiwei%10;
int d=n%10;
int out=d*1000+c*100+b*10+a;
System.out.println("加密后的数字是:"+out);
}
完成后我们再尝试一下用数组的方式去解决这道题,经过多次尝试以后实现该功能,其代码如下:
public static void main(String[] args) {
System.out.println("请输入一个4位数字:");
Scanner sc=new Scanner(System.in);
int n=0;
int a=0;
while(true){
n=sc.nextInt();
if(n<999||n>10000){
System.out.println("你输入的数字不合法!请重新输入");
}else{break;}
}
int[] m=new int[4];
for(int i=0;i<m.length;i++){
m[i]=n%10;
n/=10;
m[i]+=5;
m[i]%=10;
System.out.print(m[i]);
}
}
采用数组来完成这一功能核心的代码只有一个for循环,而且题目中的4位数这个条件可以轻易的改为5位6位或更多,而不需要过多的更改代码。
相信本文所述示例对打击学习Java的数组会带来一定的借鉴价值。
0
投稿
猜你喜欢
- 介绍在 .NET4.0 之前,如果我们需要在多线程环境下使用 Dictionary 类,除了自己实现线程同步来保证线程安全外,我们没有其他选
- 本文实例讲述了Android实现学生管理系统,分享给大家供大家参考。具体如下:(1)管理系统实现的功能主要是:学生、教师的注册登录,和选课,
- springboot static调用service为null@PostConstruct注解好多人以为是Spring提供的。其实是Java
- 一、前言在C#中,由于有了垃圾回收机制的支持,对象的析构和以前的C++有了很大的不同,这就要求程序员在设计类型的时候,充分理解.NET的机制
- 前言我采用的是Camera来实现自定义相机的,如果你使用的是Camera2,那本文将不适用你。为了减少篇幅,本文主要讲解手动对焦的实现方式,
- 因重定向无法正常goBack()解决方案首先说下问题,初始页面为A,点击某个链接跳转到B(http://xxx.com.cn/),B页面重定
- 本文实例为大家分享了Unity实现VR中在黑板上写字的具体代码,供大家参考,具体内容如下一、工具1.开发用的是Unity 5.6.2版本2.
- 目录Retrofit介绍Retrofit优点Retrofit的使用1.引入依赖项2.添加网络权限3.编写Retrofit辅助类4.定义Api
- 在 Spring 容器中,两个 Bean 之间除了通过 <ref> 建立依赖关系外,还存在着一些特殊关系。1 继承在
- 学习java的人都知道spring,springMVC,mybatis等框架,像structs2这样的框架是基于servlet以外实现的,而
- 本文实例讲述了Android实现跑马灯效果的方法。分享给大家供大家参考。具体如下:运行效果截图如下:直接在布局里写代码就好了:<Tex
- 前言Android 8.0系统更新之后,app的更新将不再像之前的系统版本一样能够直接下载安装包之后直接安装(以前安装未知来源应用的时候一般
- 当两个线程竞争同一资源时,如果对资源的访问顺序敏感,就称存在竞态条件。导致竞态条件发生的代码区称作临界区。在临界区中使用适当的同步就可以避免
- 调用后动态壁纸其实是显示在Activity的后面,而Activity则是透明显示,这样就可以看到下面的动态壁纸,如果Activity不是透明
- 什么是反射机制反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个ja
- 公钥与私钥公钥与私钥是成对的,一般的,我们认为的是公钥加密、私钥解密、私钥签名、公钥验证,有人说成私钥加密,公钥解密时不对的。公钥与私钥的生
- 通过邮件找回密码功能的实现1、最近开发一个系统,有个需求就是,忘记密码后通过邮箱找回。现在的系统在注册的时候都会强制输入邮箱,其一目的就是
- 目录1,基本介绍2,HttpURLConnection实现3.HttpClient实现4.Spring的RestTemplate1,基本介绍
- //Main:using System;using System.Collections.Generic;using System.Linq
- 首先我们建立两个数据库(可以不在同一台电脑上):multiple_order:DROP DATABASE IF EXISTS `multip