新手光能
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,max=0;
cin>>n;
if(n%10==5)
{
for(int i=1;i<=n;i++)
{
if(n%5==0)
{
n/=5;
max++;
}
else
{
break;
}
}
}
else
{
for(int i=1;i<=n;i++)
{
int j=1;
j*=10;
if(n%j==0)
{
max++;
}
}
}
cout<<max;
return 0;
}
//为什么错了?
吴知玄在2018-01-13 22:50:03追加了内容
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int n,max=0;
cin>>n;
if(n%10==5)
{
for(int i=1;i<=n;i++)
{
if(n%5==0)
{
n/=5;
max++;
}
else
{
break;
}
}
}
else
{
for(int i=1;i<=n;i++)
{
int j=1;
j*=10;
if(n%j==0)
{
max++;
}
}
}
cout<<max;
return 0;
}
为什么错了?
高级守护
if(n%10==5)
{
int count=0;
while(n%5==0)
{
n/=5;
count++;
}
cout<<count;
}
else
{
int count=0;
while(n!=0)
{
if(n%10==0)
{
count++;
}
n/=10;
}
cout<<count;
}
这是核心部分,你就是这部分错了,其他就是输入了!
初级光能
核心部分
sprintf(a,"%d",n);
if(a[strlen(a) - 1] == '5'){
while(n % 5 == 0){
ans ++;
n /= 5;
}
cout << ans << endl;
}
else{
for(int i = 0;i <= strlen(a) - 1;i ++){
if(a[i] == '0') ans ++;
}
cout << ans << endl;
}
朱宗晔在2018-01-14 08:55:03追加了内容
@吴之玄
你的0的错误是:
int j = 1;
j *= 10;
这样子,每一次循环,j都是1 * 10.
解决方法:把
int j = 1;
放到循环外面
高级光能
if (n%10==5) { int s=0; while (n%10==5 || n%10==0) { s++; n/=5; } cout<<s<<endl; } else { while (n!=0) { int s=100; s=n%10; n/=10; if (s==0) t++; } cout<<t<<endl; }
新手守护
核心部分
sprintf(a,"%d",n);
if(a[strlen(a) - 1] == '5'){
while(n % 5 == 0){
ans ++;
n /= 5;
}
cout << ans << endl;
}
else{
for(int i = 0;i <= strlen(a) - 1;i ++){
if(a[i] == '0') ans ++;
}
cout << ans << endl;
}