本帖最后由 高亮亮 于 2013-12-10 20:51 编辑
- /*
- 需求:小于8的整数。先倒序,然后每位数字加上5,在用和除10的余数代替该数字。最后将第一位最后一位互换。
- 请任意指定一个小雨8的整数,并将加密后结果打印。
- 思路:
- 用数组存储每位上的数字,并倒序。
- 每位数字进行加,取模操作,并更新数组中元素。
- 对数组中首,尾元素互换。
- 遍历数组元素输出。
- */
- import java.util.*;
- class JiaMi
- {
- public static void jiaMi(int num)
- {//用数组存储每位上的数字,并倒序。
- int[] arr=new int[8];
- int index=0;
- System.out.print("您输入的原始密码为:"+num);
- while (num>0)
- {
- arr[index++]=num%10;
- //arr[index]=num%10; //为什么这里如果我将索引里面做成自加,在输入8位
- //index+=1; <span class="Apple-tab-span" style="white-space:pre"> </span>//数是会报索引越界的错误?他们不应该完全是一个意思?
- num/=10;
- }//每位数字进行加,取模操作,并更新数组中元素。
- for (int i=0;i<index;i++)
- {
- arr[i]+=5;
- arr[i]%=10;
- }//对数组中首,尾元素互换。
- arr[0]=arr[0]^arr[index-1];
- arr[index-1]=arr[0]^arr[index-1];
- arr[0]=arr[0]^arr[index-1];
- System.out.print("\n加密后密码为:");
- for (int i=0;i<index;i++)//遍历数组元素并输出。
- {
- System.out.print(arr[i]);
- }
- }
- public static void main(String[] args)
- {
- Scanner in=new Scanner(System.in);
- while (true)
- {
- System.out.println("请输入原始小于八位密码:");
- int num=in.nextInt();
- jiaMi(num);
- System.out.println("\n"+"是否继续?任意键继续,1:退出");
- int x=in.nextInt();
- if (x==1)
- break;
- continue;
- }
- }
- }
复制代码
==================================无视我======================================
如上面的代码,在循环里面录入这个不确定的数组时候,为什么我把i自加放入索引里面,在编译过后,运行时输入8位数就会报索引越界呢???
==================================无视我======================================
感谢给位……果然,我晚上把里面的那个class删了,重编译,就可以了……不过我之前也是编译在运行啊,怎么会报错呢???java抽风了……估计。
|