n!=1*2*3*.....*n; 求只含有奇数的1*3*5*7*9*11*......*n的最后一位; n属于long long int 范围 (保证n为奇数)
时间: 2023-12-04 10:02:06 浏览: 127
数据结构排序链表100题.doc
这个问题可以通过循环遍历每个奇数,然后将它们相乘得到结果。由于只需要求最后一位,我们可以在每次相乘时只保留最后一位,这样可以避免溢出。具体实现如下:
```
public static int lastDigitOfOddFactorial(long n) {
int result = 1;
for (long i = 1; i <= n; i += 2) {
result = (result * (int)(i % 10)) % 10;
}
return result;
}
```
这个方法中,我们使用了一个变量`result`来保存当前的结果,初始值为1。然后我们循环遍历每个奇数,将它们的最后一位相乘并将结果保存到`result`中。由于每次相乘后我们只保留最后一位,所以我们需要使用取模运算来实现。最后返回`result`即可。
阅读全文