直接相加
import java.io.*;
class T {
public static int sum(int num1, int num2)
{
return num1+num2;
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
二分查找
import java.io.*;
class T{
public static int sum(int num1, int num2)
{
int l = -200, r = 200;
while (l < r) {
int mid = (l + r) >> 1;
if (mid == num1 + num2) {
return mid;
}
if (mid < num1 + num2)
l = mid + 1;
if (mid > num1 + num2)
r = mid - 1;
}
return l;
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
位操作
import java.io.*;
class T{
public static int sum(int num1, int num2)
{
if (num2 == 0) return num1;
return sum(num1 ^ num2, (num1 & num2) << 1);
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
蛮力
import java.io.*;
class T{
public static int sum(int num1, int num2)
{
for (int i = -200; i <= 200; i++) {
if (num1 + num2 == i) {
return i;
}
}
return -1;
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
前缀和
import java.io.*;
class T{
public static int sum(int num1, int num2)
{
int[] A = new int[] {num1, num2};
int[] prefixSum = new int[A.length+1];
for (int i = 0; i < A.length; i++) {
prefixSum[i+1] = prefixSum[i] + A[i];
}
return prefixSum[A.length];
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
后缀和
import java.io.*;
class T{
public static int sum(int num1, int num2)
{
int[] A = new int[] {num1, num2};
int[] suffixSum = new int[A.length+2];
for (int i = A.length; i >= 1; i--) {
suffixSum[i] = suffixSum[i+1] + A[i-1];
}
return suffixSum[1];
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
分而治之
import java.io.*;
class T{
int n = 3;
int[] A = new int[n];
public int sum(int num1, int num2) {
A[1] = num1; A[2] = num2;
return fun(1, 2);
}
public int fun(int l, int r) {
if (l==r) return A[l];
int m = (l+r)>>1;
return fun(l, m) + fun(m+1, r);
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
快速幂(平方取幂)
import java.io.*;
class T{
int M = (int) 1e9+7;
public int sum(int num1, int num2) {
return pow(num1, 1) + pow(num2, 1);
}
public int pow (int x, int exp){
if (exp==0) return 1;
int t = pow(x, exp/2);
t = t*t % M;
if (exp%2 == 0) return t;
return t*x % M;
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
递归
import java.io.*;
class T{
public int sum(int x, int y)
{
if (y == 0)
return x;
return sum(x ^ y,(x & y) << 1);
}
public static void main(String[] args)
{
int res = sum(11, 22);
System.out.println(res);
}
}
输出
33
© 版权声明
非商业转载或引用请标注本文链接,商业转载或引用请联系站长
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
部分文章内容可能来自互联网,如有侵权,请通过邮件联系
THE END
暂无评论内容