• 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;
    }
  • 相关阅读:
    mysql导出导入数据库和表学习笔记
    gitlab+jenkins学习笔记
    mysql数据库的备份与恢复
    第十二天python3 匿名函数
    第十三天python3 生成器yield
    [Todo]Java反序列化-weblogic
    bcrypt浅析
    AWD准备
    Linux下提权练习
    wordpress站点被恶意重定向
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3647495.html
Copyright © 2020-2023  润新知