题1:定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序
题2:定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和
题3:定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位回文数
public class NumberTest {
public static void main(String[] args) {
System.out.println(isPalindromicNumber(12322321));
System.out.println(sumNum(-1340));
sum(1, 2);
}
/**
* 定义整型变量 a、b,写出将 a、b 两个变量值进行互换的程序
* (要求不能使用第三个变量)
*
* @param i
* @param j
* @return
*/
public static void sum(int i, int j) {
//位运算的异或运算,相同为0,不同为1
//获取到i与j的不同位均为1,保存在i中
i = i ^ j;
//此时将j再与当前的i进行异或操作,即获取到了i的值,保存给j即可完成j保存了i的值
j = i ^ j;
//同理可以获得i的值
i = i ^ j;
System.out.println(i);
System.out.println(j);
}
/**
* 2. 定义一个整型变量并赋任意五位正整数作为初始值,输出各位数字之和
*
* @param num
* @return
*/
public static int sumNum(int num) {
if (num < 0) return 0;
int temp = 0;
//利用for循环获取每个位上的数字并加起来返回即可
while (num >= 1) {
temp = temp + num % 10;
num = num / 10;
}
return temp;
}
/**
* 定义一个整型变量并赋任意五位正整数作为初始值,判断它是不是五位回文数
*
* @param num
* @return
*/
public static boolean isPalindromicNumber(int num) {
if (num < 0) return false;
int resetNum = 0;
int tempNum = num;
//利用for循环将当前的数字翻转,然后在比较是否相等,就能判断是否是回文数了
while (tempNum >= 1) {
resetNum = tempNum % 10 + resetNum * 10;
tempNum = tempNum / 10;
}
return resetNum == num;
}
}