Finite Decimal
题目
小数部分的位数有限的小数被称为有限小数。例如0.123450.12345是有限小数,1/3,Π是无限小数。
给你一个正整数n,请你判断1/n是否为有限小数,如果是输出"YES",否则输出"NO"(不包含引号)
思路:当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; } }

浙公网安备 33010602011771号