java에서 수조를 사용하여 아날로그 암호화하는 방법

1874 단어 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자리 이상으로 쉽게 바꿀 수 있으며, 코드를 너무 많이 변경할 필요가 없다.
본고에서 기술한 예시가 자바 학습을 타격하는 수조에 대해 일정한 참고 가치를 가져다 줄 것이라고 믿는다.

좋은 웹페이지 즐겨찾기