カジュアルワーキング
探している1 + 2 + 3 + ... + nは、のために、使用することができない乗算と除算を必要とし、一方、もし、そうでなければ、スイッチ、ケースと条件文などのキーワードそのような(A B:?C)
思考
私たちは通常、約我々は終了条件が時間内に満たされていないときショート達成するために使用達成するためのデジタルループを、追加した場合の利点を活用する方法だと思います。
コード
public int Sum_Solution(int n) {
int sum=n;
boolean t=(n>0)&&(sum=sum+Sum_Solution(n-1))>0;
return sum;
}
カジュアルワーキング
書き込み機能、および2つの整数の和、機能がインビボで使用されなくてもよい+が必要、 - 、*、/四則記号。
思考
&を使用して計算^
初めて目は、小数点を行う方法である:5 + 7 = 12、3つのステップが
1ステップ:値を追加することのメンバーは、2を取得し、実行しません。
ステップ2:キャリー値が算出され、キャリーが0の場合は10を与えるために、このステップは、最初のステップからの値が最終結果です。
第三段階:二段階の上に繰り返すが、付加価値が得られる二つのステップ10および図2の結果となり、12を得ました。
同様に、我々は、バイナリ値の合計を計算するために3段階の方法を使用することができます:
5-101,7-111
最初のステップを:運び、皆の値を加算していない、あなたは異なる行う各バイナリの合計に相当する010を取得しますまたは操作、101 ^ 111。
ステップ2:あなたは101を取得しない操作に対応し1010を与えるように計算キャリー値は、1010(101&111)を得、再び左<< 1。
二工程第三工程上に繰り返し、あなたは、010 ^ 1010 = 1000、フィード=ビット値100(010および1010)を添加する<< 1。
キャリーは、最終的な結果として、ループ1100のうち、0であり、1000年= 1100 ^ 100:二段階の上に繰り返し続けます。
コード
public int Add(int num1,int num2) {
while(num2!=0){
int temp=num1^num2;
num2=(num1&num2) <<1;
num1=temp;
}
return num1;
}