若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。


  • 运维

  • 前端

  • 编程

  • 随笔

  • hust-oj

1311: 公式解析

发表于 2017-10-06   |   分类于 HUSTOJ   |   阅读次数 1,303

题目描述

在某些应用中,为了支持灵活性,往往用到自定义的公式。

比如,有如下的原始公式集合:

int add(int x, int y):  返回x与y的和

int add(int x, int y, int z):  返回x,y,z三个数的和

int min(int x, int y):  返回x,y中较小的值

int max(int x, int y):  返回x,y中较大的值

int doubleMe(int x):  返回 x 的2倍

给出一个自定义公式串

add(min(5,3),max(2,8),add(1,doubleMe(1)))

通过手工计算可以得出结果为:14

本题的任务是:编写一个解析程序,能够对由上述原始公式任意组合出来的公式计算其结果。也就是输入一个自定义公式串,输出它的计算结果(可以不考虑输入公式本身有语法错误的情况)。

输入的公式串中可以含有多余的空格,类似:

add( min(5, 3) , max(2 , 8) )  也是合法的公式。

输入

暂无

输出

暂无

样例输入

doubleMe(doubleMe(doubleMe(1)))

样例输出

8

参考代码

#include<stdio.h>
#include<math.h>
int main() 
{
    int n,s,x,y,k,m;
    while(scanf("%d",&m)!=EOF) 
    {
        if(!m)
                break; else 
        {
            k=(int)sqrt(m);
            n=m-k*k;
            s=k+1;
            if(m==1||m==9||m==25) 
            {
                x=1;
                y=k;
            } else
                    if(m==4||m==16) 
            {
                x=k;
                y=1;
            } else
                    if(m>=2&&m<=3||m>=10&&m<=15) 
            {
                if(n<=s) 
                {
                    y=s;
                    x=n;
                } else 
                {
                    y=2*s-n;
                    x=s;
                }
            } else
                    if(m>=5&&m<=8||m>=17&&m<=24) 
            {
                if(n>s) 
                {
                    x=2*s-n;
                    y=s;
                } else 
                {
                    x=s;
                    y=n;
                }
            }
            printf("%d %dn",x,y);
        }
    }
    return 0;
}

解析

暂无

hustoj

发表评论 取消回复

邮箱地址不会被公开。 必填项已用*标注

*
*


hoxis wechat
著作权归作者所有
站点更新说明
  • 文章目录
  • 站点概览
若是凉夜已成梦

若是凉夜已成梦

青春里 总有些事情要努力去做 总有些梦想要拼命去追。

1904 日志
6 分类
12 标签
RSS
weibo github twitter facebook

友情链接

Dreams孤独患者 Skip 原站点
© 2017 若是凉夜已成梦
Powered by WordPress | 已运行
Theme By NexT.Mist