package com.asiainfo.cem_volte_hbase;
/**
* @ClassName Test
* @Description 有意思的小算法
* @Author qianxl
* @Date 2019-08-02 17:34
* @Version 1.0
**/
public class Test {
/**
*
* @param num1
* @param num2
* @description: 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
* @return:
* @author qianxl
* @date: 2019/8/2 18:22
* @since 1.0
*/
public static void add(int num1, int num2){
int temp = 0;
while (num1 != 0){
temp = num1 ^ num2;
num1 = (num1 & num2) << 1;
num2 =temp;
}
System.out.println(num2);
}
/**
*
* @param n
* @description: 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)
* @return: {@link int}
* @author qianxl
* @date: 2019/8/2 18:43
* @since 1.0
*/
public int sum(int n) {
int sum =n;
boolean t = n!=0 && (sum +=sum(n-1)) !=0;
return sum;
}
public static int sum2(int n) {
if (n == 0) {
return n;
}else{
int sum = sum2(n-1) +n;
return sum;
}
}
/**
*
* @param num1
* @param num2
* @description: 写一个函数,求两个整数之差,要求在函数体内不得使用+、-、*、/四则运算符号
* @return: {@link int}
* @author qianxl
* @date: 2019/8/2 19:29
* @since 1.0
*/
public static int miners (int num1, int num2) {
return num1 ^ num2;
}
public static void main(String arg[]){
add(3, 4);
int i = sum2(5);
System.out.println(i+"结果");
int miners = miners(7, 6);
System.out.println(miners + "减法 ");
}
}
位运算实现一些小算法
最新推荐文章于 2023-05-20 14:24:04 发布