29
2010
2

反转数组 Reverse Array

补习一下基础算法;
把{ 1, 2, 3, 4, 5 } 输出为 { 5 ,4 ,3 ,2 ,1 } ;
原理:把第一个数和最后一个数交换,第二个和最后第二个交换,以此类推,也就是(第i个索引)和(数组长度-1-i)交换。交换的次数为:数组长度/2

  1. int[] arr = { 1, 2, 3, 4, 5 };
  2.         int len = arr.length;
  3.         for (int i = 0; i < len / 2; i++) {
  4.             //三步交换法
  5.             int t;
  6.             t = arr[i];
  7.             arr[i] = arr[len - i - 1];
  8.             arr[len - i - 1] = t;
  9.         }
  10.         for (int i = 0; i < len; i++) {
  11.             System.out.println(arr[i]);
  12.         }
Written by Nffish in: 算法 | 标签:,

08
2009
3

把数字转换成36进制

36进制包括0-9和a-z,只有整形的可以转换。

long i=1234567890L;
System.out.println(Long.toString(i,36).toLowerCase());

输出:kf12oi

Written by Nffish in: Java | 标签:, , ,

13
2008
2

不增加变量,交换两个数值变量的值

要想不增加变量,交换两个变量的值,只可能做加减乘除运算

加减: a=a+b=5+8=13;b=a-b=13-8=5;a=a-b=13-5=8;
a=a-b=5-8=-3;b=a+b=-3+8=5;a=b-a=5-(-3)=8;

乘除,同理。

代码片断:

  1. public static void changeNumber(double a,double b)
  2. {
  3.                                 //假设a=3,b=5
  4. a=a+b;                     //3+5=8
  5. b=a-b;                      //8-5=3
  6. a=a-b;                      //8-3=5
  7. System.out.println("交换后的值:");
  8. System.out.println("a的值为:"+a);
  9. System.out.println("b的值为:"+b);
  10. }
Written by Nffish in: 未分类 | 标签:,

Powered By Wordpress Theme AEROTRONIC |
除非另有声明,本网站采用知识共享“署名 2.5 中国大陆”许可协议授权。