黑马程序员技术交流社区
标题:
怎么把数组里的数调换位置
[打印本页]
作者:
sanjiadiankeli
时间:
2014-6-4 00:10
标题:
怎么把数组里的数调换位置
public class JiaMi1 {
public static void main(String[] args){
int[] arr = {1,2,3,4,5,6,7};
int[] arr2= new int[arr.length-1];
for (int i = arr.length-1; i >= 0; i--) {
int j = 0;
arr2[j] = (arr[i]+5)%10;
System.out.print(arr2[j]);
j++;
}
}
}
复制代码
这是题目; 某个公司采用公用电话传递数据信息,数据是小于8位的整数,
为了确保安全,在传递过程中需要加密,加密规则如下:
首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
最后将第一位和最后一位数字交换。
请任意给定一个小于8位的整数,
然后,把加密后的结果在控制台打印出来。
我现在输出的结果210976现在需要把2和6换位置,我用第三方变量不行,换不了,请大神给解决下
作者:
superob123
时间:
2014-6-4 00:30
不需要另外设一个数组,用原来的数组就可以完成,先倒序,Arrays.reverse(arr),然后在循环里加个条件语句,if
作者:
superob123
时间:
2014-6-4 00:32
循环for(int x=0;x<arr.length;x++)里面加个if(x==(arr.length-1))再换第一个和最后一个
作者:
chenzhiyuan
时间:
2014-6-4 01:53
//不知到是不是这个意思,把数据倒转,头和尾交换,不断的交换,而且要加密,不是原有的数据,阅读时要解密?
int arr[]={4,5,6,4,7,8};
for(int stat=0,end=arr.length-1;stat<end;stat++,end--){
int temp=0;
//对每个数据加密
temp=arr[stat]+5%10;
//对每个数据加密
arr[stat]=arr[end]+5%10;
arr[end]=temp;
}
作者:
felixzr
时间:
2014-6-4 02:04
本帖最后由 felixzr 于 2014-6-4 02:06 编辑
可以定义一个POS位
class Demo
{
public static void main(String[] args)
{
int a = 743456;
int[] arr = new int[8];
int pos = 0;
while(a>0){
arr[pos] = a%10;
//a = a/10;
a /= 10;
pos++;
}
for(int i=0;i<pos;i++){
System.out.print(arr+" ");
arr = (arr+5)%10;
}
System.out.println();
int temp;
temp = arr[0];
arr[0] = arr[pos-1];
arr[pos-1] = temp;
for(int j=0;j<pos;j++)
{
System.out.print(arr[j]+" ");
}
}
}
作者:
sanjiadiankeli
时间:
2014-6-4 22:39
不需要解密 只加密
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2