zoukankan      html  css  js  c++  java
  • ACM Arithmetic Expression

    Description

    Given N arithmetic expressions, can you tell whose result is closest to 9?

    Input

    Line 1: N (1 <= N <= 50000).
    Line 2..N+1: Each line contains an expression in the format of "a op b" where a, b are integers (-10000 <= a, b <= 10000) and op is one of addition (+), subtraction (-), multiplication (*) and division (/). There is no "divided by zero" expression.

    Output

    The index of expression whose result is closest to 9. If there are more than one such expressions, output the smallest index.

    Sample Input

    4
    901 / 100
    3 * 3
    2 + 6
    8 - -1

    Sample Output

    2
    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    #include <cstdio>
    #include <cmath>
    #include <iterator>
    using namespace std;
    
    int main(){
        int n;
        cin >> n;
        vector<double> res(n,0);
        for(int i = 0 ; i < n; ++ i){
            double a,b;
            char op;
            cin >> a >> op >> b;
            switch(op){
            case '+':
                res[i] = fabs(a+b-9);
                break;
            case '-':
                res[i] = fabs(a-b-9);
                break;
            case '*':
                res[i] = fabs(a*b-9);
                break;
            case '/':
                res[i] = fabs(a/b-9);
                break;
            default:
                break;
            }
        }
        cout<<distance(res.begin(), min_element(res.begin(),res.end()))+1<<endl;
        return 0;
    }
  • 相关阅读:
    说下vue工程中代理配置proxy
    说一下登陆页面的实现逻辑
    $router和router区别
    iframe中涉及父子页面跨域问题
    浅析闭包
    用户注册之短信验证
    vue.js(三)
    vue.js(二)
    vue.js(一)
    批量更改会员权限
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3647495.html
Copyright © 2011-2022 走看看