剑指Offer(41-50)

题46:求1+2+3+...+n

【题目描述】求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)

import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int  num1=sc.nextInt();
        int num2=sc.nextInt();
        System.out.println( add(num1,num2));
    }

    public static int  add(int num1 ,int num2){
      int sum ,carry;
      do {
          sum=num1^num2;
          carry=(num1&num2)<<1;
          num1=sum;
          num2=carry;
      }while (carry!=0);
      return num1;
    }
}


posted @ 2018-02-02 18:44  daminzhou  阅读(138)  评论(0编辑  收藏  举报