简单的Caesar Cipher程序输出不正确

时间:2014-05-27 03:13:36

标签: java arrays

class numbers     
{
  int[] code = {1, 3, 5};
  int[] p = {7,0,7,1,2,3,4,5,6,7};
  int phone[] = new int[10];

  void getNum()
  {
       for (int i =0; i< p[2]; i++)
       {
          phone[i] = (p[i] + code[0]) % 10;
       }
       for (int i =3; i< p[5]; i++)
       {
          phone[i] = (p[i] + code[1]) % 10;
       }
       for (int i =6; i< p.length; i++)
       {
          phone[i] = (p[i] + code[2]) % 10;
       }
  }
  void displayNum()
  {
        String output = "The resulting phone number is: \n";
        for (int i = 0; i< phone.length; i++)
        {

            output = output + phone[i];

        }
        System.out.println(output);

  }

对于上面的行代码,我的结果应该是:

818-456-9012

这是基于我正在使用的Caesar密码,它将我的数组转换为不同的数组。

然而,当我运行代码时,我得到了结果:

818-234-9012

请帮我修复我的代码。谢谢你的帮助。

1 个答案:

答案 0 :(得分:-1)

检查出来

  void getNum()
  {
       for (int i =0; i< 3; i++)
       {
          phone[i] = (p[i] + code[0]) % 10;
       }
       for (int i =3; i< 6; i++)
       {
          phone[i] = (p[i] + code[1]) % 10;
       }
       for (int i =6; i< p.length; i++)
       {
          phone[i] = (p[i] + code[2]) % 10;
       }
  }