描述
给出如下除法表达式E:
X1/X2/X3/..../Xk
其中Xi是正整数并且Xi<=2 000 000 000(1<=i<=k,k<=10 000)。除法表达式应当按照从左到右的顺序求结果,例如
表达式1/2/1/2的值是1/4。现在让你可以在表达E中嵌入括号以改变计算顺序,例如表达式(1/2)/(1/2)的值是1。现在给你
一个除法表达式E,要求告诉是否能够通过加括号(或者不加)得到表达式E' ,E'的值为整数。
将以后出现的数字乘以第一个分子,%第一个分母,看得到的是不是0
输入
输入数据包括多组数据,每组数据占一行,给出的是题目描述的表达式E,E中不含空格。
输出
每个测试数据占一行如果能找到题目中描述的E' 则输出"YES"(不含引号),否则输出"NO" (不含引号)。
样例输入
1/2/1/2
2/3
2/3
样例输出
YES
NO
NO
#include<iostream> #include<cstdio> using namespace std; int main() { __int64 n,m=0,t; char c; while(cin>>n) { c=getchar(); if(c!='/'){cout<<"YES"<<endl;continue;}//这里要判断当只有一个整数的时候直接输出 cin>>t; //t代表第一个分母 while(c=getchar()=='/') { n=n%t; //分子%第一个分母 cin>>m; n*=m; } if(n%t==0)cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }