我想将一个数字中的每个数字相乘.
例如
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)
Run Code Online (Sandbox Code Playgroud)
我用这个代码来做
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;
}
Run Code Online (Sandbox Code Playgroud)
问题是我想评估大约10亿这样的数字
for(int i=0;i<1000000000;i++)evaluate(i);
Run Code Online (Sandbox Code Playgroud)
这需要我的处理器大约146秒.我想在几秒钟内评估它.
那么,是不是可以使用一些优化的代码shift,and,or运营商,这样我可以降低评估时间不使用多线程并行或它
谢谢