zoukankan      html  css  js  c++  java
  • Arithmetic Expression

    时间限制:2000ms
    单点时限:200ms
    内存限制:256MB

    描述

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

    输入

    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.

    输出

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

    样例输入
    4
    901 / 100
    3 * 3
    2 + 6
    8 - -1
    样例输出
    2

    程序:

     1 #include<iostream>
     2 #include<string>
     3 #include<stdlib.h>
     4 #include<math.h>
     5 using namespace std;
     6 
     7 double caluculate(double a, double b, char op)
     8 {
     9  if(op == '+')
    10  {
    11      return a + b;
    12  }
    13  else if(op == '-')
    14  {
    15      return a - b;
    16  }
    17  else if(op == '*')
    18  {
    19      return (double)(a * b);
    20  }
    21  else if(op == '/')
    22  {
    23      return (double)(a / b);
    24  }
    25 }
    26 
    27 int main(void)
    28 {
    29     int amount = 0;
    30     cin>>amount;
    31     double tmpmin = 2147483647;
    32     int position = -1;
    33     for(int i=0; i<amount; ++i)
    34     {
    35         double a,b;
    36         char op;
    37         cin>>a;
    38         cin>>op;
    39         cin>>b;
    40         double tmpresult = caluculate(a,b,op);
    41         double tmp_result = fabs(9-tmpresult);
    42         if(tmp_result < tmpmin)
    43         {
    44             tmpmin = tmp_result;
    45             position = i+1;
    46         }
    47     }
    48 
    49     cout<<position<<endl;
    50 
    51     return 0;
    52 }

    遇到的问题:

    • 一开始没有发现结果应该是double的,int型的话会导致除法的小数位看不到
    • 刚开始使用了stdlib.h中的abs()函数,后来发现应该用math.h中的fabs(),看来自己对math.h中的许多函数都不是很熟悉,不能熟练应用,随后补充
  • 相关阅读:
    支付弹出窗口被拦截解决办法
    实现Bootstrap Carousel Fade Transition 淡入淡出效果
    SVN Global ignore pattern 忽略文件正则后缀
    css 不确定元素宽度的水平居中
    Android Studio运行程序,检测不到(夜神、Genymotion)模拟器
    HttpClient
    Eclipse中复制android项目后要改动的地方
    Eclipse快捷键
    Xml解析之PULL解析 例2
    Xml解析之PULL解析 例1
  • 原文地址:https://www.cnblogs.com/bugking/p/3647559.html
Copyright © 2011-2022 走看看