链接:https://ac.nowcoder.com/acm/contest/9536/Q
题目
小数部分的位数有限的小数被称为有限小数。例如0.123450.12345是有限小数,1/3,Π是无限小数。
给你一个正整数n,请你判断1/n是否为有限小数,如果是输出"YES",否则输出"NO"(不包含引号)
思路
最后只过了14个(有两个还是在大佬的提示下才过的,可耻),有点可惜。
总体来说很水,后面的几个题还挺有意思,但前面的题都成海题了。
这个题是一个规律题:当n为2的m次方或者是2和5的公倍数时,1/n
就是有限小数;否则是无限小数。
知道这个的话这题就很简单了。
伊丽莎白!
代码
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+500;
bool check(int n) //关键部分,建议反复琢磨
{
while(n)
{
if(n%2==0||n==1)
n/=2;
else
break;
}
while(n)
{
if(n%5==0||n==1)
n/=5;
else
break;
}
if(n==0)
return true;
else
return false;
}
int main()
{
int T,n;
cin>>T;
while(T--)
{
cin>>n;
if(check(n))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
有点可惜,还是自己实力不够。
下次一定!