数字のすべての桁を互いに乗算したい。
例えば
515 would become 25(i.e 5*1*5)
10 would become 0(i.e 1*0)
111111 would become 1(i.e 1*1*1*1*1*1)
このコードを使用してそれを行いました
public static int evalulate(int no)
{
if(no==0)return 0;
int temp=1;
do
{
temp=(no%10)*temp;
no=no/10;
}while(no>0);
return temp;
}
問題は、このような約10億の数値を評価したいということです
for(int i=0;i<1000000000;i++)evaluate(i);
私のプロセッサでは約146秒かかります。数秒以内に評価したいと思います。
それで、複数のスレッドを使用したり並列化したりせずshift
に評価時間を短縮できるように、いくつかの , and
,or
演算子を使用してこのコードを最適化することは可能ですか?
ありがとう