思路:利用for循环写的,不过只得了80分,剩下两个运行超时了。以后想到改进的方法再更新这篇文章。
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
计算1*(1+k)*(1+2*k)*(1+3*k)*...*(1+n*k-k)的末尾有多少个0,最后一位非0位是多少。
输入格式
输入的第一行包含两个整数n, k。
输出格式
输出两行,每行一个整数,分别表示末尾0的个数和最后一个非0位。
样例输入
15 2
样例输出
0
5
数据规模和约定
1<=k<=10,1<=n<=1000000。
代码:
n,k = map(int,input().split())
s = 1
for i in range(n):
s *= (1+i*k)
# 运行超时
count = 0
for i in str(s)[::-1]:
if i == '0':
count += 1
if i != '0':
b = i
break
print(count)
print(b)