4

数字のすべての桁を互いに乗算したい。

例えば

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演算子を使用してこのコードを最適化することは可能ですか?

ありがとう

4

3 に答える 3