在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了…

这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。

变换的过程如下:

第一步. 把字符串6个一组折叠起来,比如wangximing则变为:
wangxi
ming

第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:
228 202 220 206 120 105

第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。例如: 228 => 2+2+8=12 => 1+2=3

上面的数字缩位后变为:344836, 这就是程序最终的输出结果!

要求程序从标准输入接收数据,在标准输出上输出结果。

输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。
输出格式为:n行变换后的6位密码。

例如,输入:
5
zhangfeng
wangximing
jiujingfazi
woaibeijingtiananmen
haohaoxuexi

则输出:
772243
344836
297332
716652
875843

注意:

请仔细调试!您的程序只有能运行出正确结果的时候才有机会得分!

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

import java.util.ArrayList;
import java.util.Scanner;public class Main {public static ArrayList<String> list = new ArrayList<String>();public String getResult(String s) {int[] A = new int[6];for(int i = 0;i < s.length();i++)A[i % 6] = A[i % 6] + s.charAt(i);for(int i = 0;i < 6;i++) {while(A[i] >= 10) {String temp = "" + A[i];int a = 0;for(int j = 0;j < temp.length();j++)a = a + (temp.charAt(j) - '0');A[i] = a;}}StringBuffer t = new StringBuffer("");for(int i = 0;i < 6;i++)t.append(A[i]);return t.toString();}public static void main(String[] args) {Main test = new Main();Scanner in = new Scanner(System.in);int n = in.nextInt();for(int i = 0;i < n;i++) {String s = in.next();list.add(test.getResult(s));}for(int i = 0;i < n;i++)System.out.println(list.get(i));}
}

Java实现数字密码发生器相关推荐

  1. java正则校验密码 长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种组合 或者 其中任意三种组合

    java正则校验密码必须是包含大小写字母.数字.特殊符号的8位以上四种组合 或者 其中任意三种组合 一.排除法和详细解释 1.排除大写字母.小写字母.数字.特殊符号中1种组合.2种组合.3种组合,那么 ...

  2. (java)密码加密。某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。

    package com.ag.practice;import java.util.Scanner;public class jiami { //某系统的数字密码,比如1983,采用加密方式进行传输,规 ...

  3. java数字密码字典生成器

    直接上代码,如有不足请指出 import java.io.*;/*** 描述:*java代码实现的字典生成器,新手写的,有不足之处可以指出*写个main()调用即可,create方法的参数为文件存储的 ...

  4. java绕过加密密码_Java实现简单密码加密功能

    本文实例为大家分享了Java实现简单密码加密案例,供大家参考,具体内容如下 需求: 首先将一组数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字, 最后将第一位和最后一位数字交换. 请任 ...

  5. java正则校验密码

    java正则校验密码必须是包含大小写字母.数字.特殊符号的8位以上四种组合 或者 其中任意三种组合 一.排除法和详细解释 1.排除大写字母.小写字母.数字.特殊符号中1种组合.2种组合.3种组合,那么 ...

  6. Java制作数字加减法验证码

    Java制作数字加法验证码 简介 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Hu ...

  7. java修改用户密码全代码

    java实现修改密码 前段时间一直在写东西,本来不想把用户这块的东西放出来,想了想,还是弄一个修改密码功能实现一下,首先介绍一下我这个项目,他有session等验证,所以搞起来得和正式的项目一样得实现 ...

  8. 安全篇之手机数字密码九宫格究竟哪个更安全?

    手机解锁经过多年发展已经是五花八门,密码解锁.图案解锁.指纹解锁各种各样的解锁方式.在功能机时代很多手机默认设置PIN码,每次开机都要输入PIN码才能进入手机界面,这是最早形式的手机解锁方式. 但在触 ...

  9. 二进制、八进制、十六进制和十进制的相互转换,原码反码补码计算以及Java中数字的存储

    1. Java中数字默认是十进制,二进制.八进制以及十六进制的表示如下 2. 二进制.八进制.十六进制和十进制的相互转换 2.1 为了不累赘描述,本文以百度的二进制小数转换为十进制小数为例,如下图 2 ...

最新文章

  1. 转 常见hash算法的原理
  2. Solo 博客系统 1.7.0 发布 - 新版 MD 编辑器
  3. Redis-11使用 watch 命令监控事务
  4. 阿里P7架构师详解微服务链路追踪原理
  5. Ehcache学习笔记(一)基础入门
  6. 蓝桥杯 BASIC-1 基础练习 闰年判断
  7. [转载] python中pprint模块详解——print()和pprint()两者的区别
  8. 统计学 贾俊平 笔记
  9. 上瘾啦,又用 Python 制作销售数据可视化看板
  10. ubuntu10.10下安装五笔86输入法
  11. 交换机级联,堆叠,集群技术介绍
  12. 蓝桥杯练习题--Fibonacci数列
  13. 非科班基础知识三座大山:网络,操作系统,数据库
  14. 【Unity2D】关卡编辑好帮手——TileMap
  15. 云通讯这局棋,声网、容联云怎么破?
  16. mocc javascript
  17. Ubuntu16.04深度学习环境搭建
  18. HTTP状态码:400\500 错误代码(个人总结)
  19. 协方差矩阵的几何解释
  20. mosquitto入门教程

热门文章

  1. 蓝桥杯算法训练——逗志凡的危机——动态规划+递归
  2. 如何网络推广_seo研究中心
  3. 撼龙图怎么开鸿蒙炁灵,一人之下手游鬼灵宝藏怎么玩_一人之下手游鬼灵宝藏玩法攻略_玩游戏网...
  4. MCMC详解1——蒙特卡洛方法
  5. 利用lammps软件计算硅的平衡晶格常数和体弹模量
  6. ImageMagick:png序列转gif(适合处理带透明度的图片)
  7. Vue实现简单实用的 6 位验证码输入框
  8. 与Flash Player斗智斗勇的全过程
  9. css3新增动画属性(过度动画 变形动画 关键帧动画)
  10. C语言:数字三角形!