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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;

import java.util.Scanner;

/**
* 10、在抗战时期都是采用电报传递消息的,假设要传递的数据是四位的整数,
* 在传递过程中是加密的,加密规则如下:每位数字都加上该数字与2的余数,
* 再将第一位和第四位交换,第二位和第三位交换。
* @author xujiankai
*
*/
public class Test10 {
        public static void main(String[] args) {
               
                //用户输入四位整数
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入要传递的四位整数!");
               
                //定义String类型的str存储用户输入的数据,并判断用户是否输入了四个整数
                String str = null;
                while(true){
                str = sc.next();
                if(str.matches("[0-9]{4}")){
                        break;
                }
                System.out.println("您输入的不是4位整数,请重新输入!");
                }
               
                //定义一个长度为4整型数组
                Integer array[] = new Integer[4];
                //遍历数组,将str每个位置上的数字转换成整型后存到array中,同时将每一位加上除以2的余数
                for (int i = 0; i < array.length; i++) {
                        array[i] = Integer.parseInt(str.substring(i, i+1)) ;
                        array[i] += array[i]%2;
                }
               
                //调换第一位和第四位
                int temp = 0;
                temp = array[0];
                array[0] = array[3];
                array[3] = temp;
               
                //调换第二位和第三位
                temp = array[1];
                array[1] = array[2];
                array[2] = temp;
               
                //将转换后的结果输出
                System.out.println("转换后的结果为:");
                for (int i = 0; i < array.length; i++) {
                        System.out.print(array[i]);
                }
                System.out.println();
        }

}


4 个回复

倒序浏览
新手表示看不太懂
回复 使用道具 举报
。。。。。。。。。。。。
回复 使用道具 举报
请问下 当你输入9999会是怎么样的?
回复 使用道具 举报
这是原题目 ?感觉好不严谨啊 ,他都没让打印出来加密后的数字,或者也没说9的情况。感觉无从下手
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马