2016-04-09 21 views
-3

は、1 + 2 + 3 + 4 + 5 + 6 + 7 + 8を追加し、バック番号内の番号を追加し、一緒

を答えを得るための計算効率のよい方法はあります私は数12345678

を持っていると言います私は可能であれば何かがより効率的にしたいと

は、理想的には私はStringに分裂し、解析を避けるだろう

EDIT:

この質問の目的はDETする計算がより高速な方法を見つけることです数値が3で割り切れるかどうかを確認するか、または係数に入力する数値を減らすかを決定する

数値にすべての桁を追加すると、結果を3で割ることができますそれが要因であるかどうかをチェックする。したがって、このようにして12345678をチェックするのではなく、36が因数であるかどうかを確認する。

したがって、10,100 ...などで整数を除算するだけでなく、文字列

+0

したがって、すべての数字を一緒に追加したいですか? – Tunaki

+0

はい、このアルゴリズムは何千回も実行され、小さなビットごとに違いが生じますので、可能な限り効率的に分割し、解析する必要はありません。 – Gabrielus

+0

コードレビューで* this *を尋ねることはできません。コードはありません。 – nhgrif

答えて

1

文字列を解析する必要はありません。

int sum=0; 
while(n>0) 
{ 
    sum += n%10; // add the last digit 
    n/=10; // remove the last digit. 
} 
+0

ああそうだが、彼は分裂を避けたい。 –

+0

いいえ、@ĐăngKhoaHuỳnh、彼は可能な限り効率的なものを望んでおり、部門は最も効率的な方法ではないと考えている可能性があります。 – nhgrif

+0

除算を使用せずに数字を区切る方法はありませんか? – Gabrielus

関連する問題