poj1401

来源:互联网 发布:神经网络算法知乎 编辑:程序博客网 时间:2024/06/05 07:57
这道题的思路是从1到n的数中有几个5的倍数,如果是10、20、30等等这些数,因子中只有一个5,所以算一次。如果是25,50,75等等这些数,因子中有5的平方,所以算两次。依此规律,125,625等等同样可以这样算。不可以从1到n遍历,否则会TLE。
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>int main(){  int n;  int t,i,c;  int count,tmp;  scanf("%d",&t);  while(t--)  {    count=0;    scanf("%d",&n);    c=5;    while(c<=n)    {      count=count+n/c;      c=c*5;               }    printf("%d\n",count);  }  return 0;}

0 0
原创粉丝点击