zoukankan      html  css  js  c++  java
  • 除法表达式

    【题目描述】

    经过无尽的蘑菇和无尽的不知道错在哪里、不知道发生了什么只下,恭喜KZ成功的造出了数据!!可喜可贺可喜可贺

    给出一个这样的除法表达式:X1/X2/X3/X4/X5/X6..../Xk,

    正常的除法表达式是从左往右计算的,但是我们可以向其中添加括号,以改变它的运算顺序,如1/2/1/2=1/4  ,  (1/2)/(1/2)=1  ;

    那么,  给定一个除法表达式,能否通过添加括号使它的值为正整数?

    【输入格式】

    多行

    每行一个除法表达式

    【输出格式】

    多行

    对应输入,分别输出“YES”(能为正整数)或“NO”(不能为正整数)

    【样例输入】

    8/4/7/10/99
    6/8/5/2/3
    

    【样例输出】

    YES
    NO
    

    【提示】

    3<=k<=10000 , 0<X<=0x7fffffff

    【来源】

    《算法竞赛入门经典(第2版)》第10章

    题意 : 在任意位置处添加括号,问是否使得运算的结果是一个整数

    思路分析 : 显然对于一个除法表达式,第一个元素一定是在分子的位置上,第二个元素一定是在分母的位置上,其余所有的元素都是在分子上,不断的求gcd约分即可,直到分母为 1 ,代表可以,否则是不可以。

    代码示例 :

    #define ll long long
    const ll maxn = 5e5+5;
    const ll mod = 1e9+7;
    const double eps = 1e-9;
    const double pi = acos(-1.0);
    const ll inf = 0x3f3f3f3f;
    
    char s[maxn];
    ll num[10005];
    
    ll gcd(ll a, ll b){
        return b==0?a:gcd(b, a%b);
    }
    
    int main() {
        freopen("baoquansl.in", "r", stdin);
        freopen("baoquansl.out", "w", stdout);
        
        while(~scanf("%s", s)){
            ll len = strlen(s);
            s[len] = '/';
            
            ll f = 0, k = 1;
            for(ll i = 0; i <= len; i++){
                if (s[i] == '/') {num[k++] = f; f = 0;}
                else {
                    f = f*10+(s[i]-'0');
                }
            }
            
            //for(ll i = 1; i <k; i++) prllf("%d ", num[i]);
            swap(num[1], num[2]);
            ll sign = 0;
            for(ll i = 2; i < k; i++){ 
                ll g = gcd(num[1], num[i]);
                num[1] /= g;
            }
            if (num[1] == 1) printf("YES
    ");
            else printf("NO
    ");
        }
        return 0;
    }
    
    东北日出西边雨 道是无情却有情
  • 相关阅读:
    27款经典的 CSS 框架分享
    50款非常棒的 jQuery 插件分享
    10个和 Flash 一样的 HTML5 应用演示
    Ajax 应用六个需要注意的事项
    推荐12个漂亮的 CSS3 按钮实现方案
    8个惊艳的JavaScript 为 HTML5 Canvas 提供硬件3D加速渲染应用实验
    向网页设计师推荐15个很棒的网站
    2011年度最佳 JQuery 插件分享
    javascript 技巧总结积累173231条(正在积累中)
    [转]烦人的BeforePropertieBeforeProperties,AfterProperties,properties.ListItem
  • 原文地址:https://www.cnblogs.com/ccut-ry/p/8868502.html
Copyright © 2011-2022 走看看