华为机试——实现一个简单的计算器

原题出处

对应LeetCode的227题,链接:https://leetcode-cn.com/problems/basic-calculator-ii/submissions/

题目描述

* 题目:实现一个科学计算器完成基本的计算功能
* 输入描述:加减乘除的输入数据
* 输出描述:计算结果
* 示例:输入:-1*6    输出:-6

实现思路

总体思路:将字符串解析后,遇到运算符号+-*/则进行出入栈操作,遇到数字则进行转换;

细节处理:遇到*和/两种运算,优先级高于+和-,因此遇到*和/之后将前后两个数字一并读取,并将计算后的结果入栈;

容易出错的用例:

i、运算的计算式过长,数字过多,栈空间不足,容易溢出;

ii、输入的表达式没有运算符时处理;

题目延伸

运算的数字超大,超过int或long long的表达范围时,应当以处理字符串的形式进行。具体以人计算的过程参考实现。

代码实现(包含常出错测试用例)

/* 包含经常出错的测试用例 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define STACK_SIZE_MAX   512

#ifndef INT_MAX
#define INT_MAX          2147483647
#endif

#define SYM_PLUS         1  /* 加 */
#define SYM_MINUS        2  /* 减 */
#define SYM_MULTI        3  /* 乘 */
#define SYM_ADDI         4  /* 除 */

/* 堆栈基本数据结构 */
typedef struct stackDB
{
    int stack[STACK_SIZE_MAX];
    int top;
}StackDB_T;

int calcAllStack(StackDB_T* src)
{
    int res = 0;
    int index = 0;
    while (index < src->top) {
        res += src->stack[index];
        index++;
    }
    return res;
}

/* 入栈 */
void stackPush(StackDB_T* src, int num)
{
    if (src == NULL) {
        return ;
    }
    
    /* 如果堆栈溢出,则压缩 */
    if (src->top == STACK_SIZE_MAX - 1) {
        int tmp = calcAllStack(src);
        memset(src, 0,sizeof(StackDB_T));
        src->stack[src->top] = tmp;
        src->top++;
    }
    
    src->stack[src->top] = num;
    src->top++;
}

/* 出栈 */
int stackPop(StackDB_T* src)
{
    if (src == NULL) {
        return -1;
    }
    int tmp = 0;
    if(src->top == 0) {
        tmp = src->stack[0];
        src->stack[0] = 0;
        return tmp;
    }
    tmp = src->stack[src->top - 1];
    src->stack[src->top - 1] = 0;
    src->top--;
    
    return tmp;
}

int getNextNum(char* src, int* retValue)
{
    int tmp = 0;                            /* 将字符串转为数字的结果存放变量 */
    int numCount = 0;                       /* 记录数字的长度 */
    if (*src == '*' || *src == '/') {
        src++;
    }
    
    while (*src == ' ') {
        src++;
        numCount++;
    }

    while(*src <= '9' && *src >= '0') {
        tmp = tmp * 10 + (*src - '0');
        src++;
        numCount++;
    }
    
    *retValue = tmp;
    return numCount;
}

/* 计算器 */
int calculate(char * s){
    char *pSStart = s;
    int res = 0;
    char symFlag = 0;        /* 符号标识 */
    StackDB_T calcStack;
    int frontNum, backNum, jump;
    unsigned long long convTmp;
    
    memset(&calcStack, 0, sizeof(calcStack));
    
    while (*pSStart != '\0') {
        switch(*pSStart) {
            case ' ':
                break;
            case '*':
                frontNum = stackPop(&calcStack);                /* 把前面的数字出栈 */
                jump = getNextNum(pSStart, &backNum);          /* 获取后面的数字并跳过对应长度 */

                stackPush(&calcStack, frontNum * backNum);        /* 将乘法计算结果入栈 */
                pSStart += jump ;    /* 跳过后面一个数字 */
                break;
            case '/':
                frontNum = stackPop(&calcStack);                /* 把前面的数字出栈 */
                jump = getNextNum(pSStart, &backNum);          /* 获取后面的数字并跳过对应长度 */

                stackPush(&calcStack, frontNum / backNum);        /* 将乘法计算结果入栈 */
                pSStart += jump ;    /* 跳过后面一个数字 */
                break;
            case '-':
                symFlag = SYM_MINUS;
                break;
            case '+':
                symFlag = SYM_PLUS;
                break;
            default:
                convTmp = 0;
                while (*pSStart <= '9' && *pSStart >= '0') {
                    convTmp = convTmp * 10 + *pSStart - '0';
                    pSStart++;
                }
                
                pSStart--;      /* 如果前面处理到数字,则需要后退一个等待前面的完成 */
                if (symFlag == SYM_MINUS) {
                    convTmp = -convTmp;
                }
                stackPush(&calcStack, convTmp);
                break;
        }
        
        pSStart++;
    }
    
    res = calcAllStack(&calcStack);
    return res;
}

/****************************************** 以下是测试用例 *******************************************/

int test_1()
{
    char buf[32]="3+2*2";
    
    printf("----------------------Test Case 1--------------------------\n");
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == 7) {
        printf("[INFO]:Test Case 1 Passed!\n");
        return 0;
    }
    
    printf("[Error]:test Case 1 Failed!\n[Out]:%d [Exp]:7\n",res);
    return -1;
}

int test_2()
{
    char buf[]="3/2";
    
    printf("----------------------Test Case 2--------------------------\n");
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == 1) {
        printf("[INFO]:Test Case 2 Passed!\n");
        return 0;
    }
    
    printf("[Error]:test Case 2 Failed!\n[Out]:%d [Exp]:1\n",res);
    return -1;
}

int test_3()
{
    char buf[]=" 3+5 / 2 ";
    
    printf("----------------------Test Case 3--------------------------\n");
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == 5) {
        printf("[INFO]:Test Case 3 Passed!\n");
        return 0;
    }
    
    printf("[Error]:test Case 3 Failed!\n[Out]:%d [Exp]:5\n",res);
    return -1;
}

int test_4()
{
    char buf[]="-2* 3/1 +5 / 2 -32 +   1";
    int exp = -35;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}

int test_5()
{
    char buf[]="-100* 32/1 +50000 / 20000 - 36522 +   101212";
    int exp = 61492;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}

int test_6()
{
    char buf[]="31235/32 + 12332 / 2*2-3211";
    int exp = 10097;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}

int test_7()
{
    char buf[]="2147483647";
    int exp = 2147483647;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}

int test_8()
{
    char buf[]="0";
    int exp = 0;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}

int test_9()
{
    char buf[]="1+7-7+3+3+6-3+1-8-2-6-1+8-0+0-2+0+10-6-9-9+0+6+4+2+7+1-4-6-6-0+6+3-7+0-4+10-2-5+6-1-3+7+7+2+0+2-8+7+2-3-8-9-6+10-7-6+3-8+5+6-7-10-6-8-10-8+1+9+1-9-1+10+10+3+7-1-10+1-0-7+0-3-3+4+7-9-10-1+4-8-3-0-1-0-3+5-10+6-6-0-6-6-7+7+10+10-5-9-10-2-8+9-2-8-7-9-0-6-5-1+1+3+8-5-8+3-9+9+6-5+0-2+0+8+8-4+6+1-2-0-10-8+1-2-8+2-2-2-4+2+5+3-9+1+9-8+9-8+7+10+1+10-9+2+2+8+7-10-8+6+6+3+0+4-1+0+7-3+8-8-4+8-6-6+3-3-9+6+4+6+7-2-0+6-10+8-2-4+3-8+1-2+8+1-2-4-3-9-4-1-3+5+9+7-8-2+7-10+7+9+1+5-5+8-3-10-7-1-7+10+3+2-8-8+0+9+3+6+8+4+2+10+8+6-1+2+10-5+5+4-2+10+7-6-5+9-9+5-5-2+5+2-1+7-8+4-2+2+2+5-10-7-0+5-8-6-10-5+9-1+1-8+10-7+2-3-3+2+3-8+4-6-7+3-0+6-6-3+1+2-6+2+3+0-4-0+3-5-1-4-0+9+5-6+3-10+0+10-4+6-6-5-6+5+3+7-4+6+2+0+10+4-3+10-10-0-10-4-8+9-5-0-0-9-8-3-2+6-2+5-4-6+7-8+8-8+10-0+10-3-9-5+0+10+6+9-3-0-8+4+5-4-9+0-2-3-0-9+1-4-1-6-9+1-0-0-5+1-6+1+6+0-4-9+10+2+0-8+0-10-3+5+6-3+5-1-0+6-5+5-0+0-4-1-0-4-6-5+5+1+10+10+6+0+3-6-9-9+2+8+3-2+10-5-8-4+9-6+7+3+2-9-8+8-9-6+3-7+7+10+3-10-2-7-4+3+3+10+5-6-8+10-6+1-8-5+10-0-6-8-7-10-0+5-3+10+9-8-7+2-2+2-8-5+6-6+9+3+1+0+7-9+10-0+8-0+2+8-2+4+10-6-2-9+3-9+4-10-2-6+6+8-10+7+9-4-8-1-9-8+2+8+10-3-4-8-0-7-10-6-6-2+4-2-1-7+1+8+5-0+8+7+0+0-6-10-7+9-3+10+7*10-3-7-4-2+2+9+8+5+2+0-3+2-5+10-3+3+2-10+5-4-1+7+1-3-8-2-1-1-6-7+6+10+3-10+2+2+8+6+10+7+9+8+3+4+10+4+1+2-1-1+0-7-7+8-10-7-1+4-9+1+8+3+9-9+8-1+0-9-7+7+4-3-5-8+10+7+9-8-5-8+4+10-3-3+1+7/2-9+3+8-1+8-5-10-9-0+9-8+1+1-8-7-4-3-8-7-9+6-1+1-2+6-6+8-7-10-3+8-7-0-3+6+1+10+8+3+9-2+8+3-9-2+0-4+2+2-10+7-2-8+2-9-1+8-9-9-2-8-7+3-1+9-5+0-2-10-9+7+10-2+8-7-8-8+0-3-7+2+10+4+4+2-9+5+2+2-7+1-2+10-9+5+5-7-8+8-6+2-8+1-7-1-0+6-5+4-4-0-4-1-1-9-6-9-2-10+4+6-3+5+8-6+3+8+3-3-7+4-5-3-7+8+9+0-3-5+0-10+9+10-1+1-8-9+1-9+2-8+10+2-7+10+9-9-7-4-10-0-8+10-4-4-9+2-8-10+2-6-6-9-1-7-6-7-9-9-9+9+10+1+1+5-3+9-8-7-7-4-10+7-7+1-4+6+10+0+10-0+0-0+6-3-3+3-10-7+4-1-4-7+7+5+8+1+3+4-9+5+5+1-10-4*3-9-3+5-6-2+6-10-1-6+4+5+2+4-7-3+2+9-10-1-0+4-10-2+10-8-3-7-0+4-6+2-3-10+4+7+7-8-9+5+9-2+8+7-3-4-3-3-5-8-0-5+5+0-3+5-6+9-6-3-2+6+7+4-10-5-9+4-1+6-6+5+3-7-4+4-7-2+0+5-1-5-7+9+0-6+7-3+2+10+9-1-5-3-10-4+9+3+1-3+7-2-5+4+7+9-10+7+9-3-4-10+8+0+2+6+10+8-0-7+7+3+0-7-0-10-0+1-0-6-7+10-4-0+1+6+1+4-7+7+1-1-1-9+6-9-8-0+3-2+3-0-5-10-3+8-8+3+5+0-0+0-4-1+8+7-8+10-10+1+5-6+2-7+3-6+3+10-5+8-7+4+8-9-7-8+8+5+0+8+7+3-0-8+9+1-2+10-0-0-8-4+0+9-6+9+4-2-9-4+6+8-1+0+1+10-8-6+7-10-1-10+1-3+6-6-7-7+6-8-4-8+1-8-9+3-6+1+7-7+8+0+1-1+4-7+6-9+4+5-3-9+3-2-5-1+0+4+3+4-8-2+2+2-9-8-9+0+5-3-10-8-4-10-7-4+4+10+10+0+8-9+4-2+1-2-5-9+8-3-0-8+6-5+8-5+6-6-1-10-9+2-7-5-8+3-3+0-9-4+1-7-4+8+1-1-2-8+9-2-2-10-5-3+7+9-6+8+0-5-8+2-7-8+7+0-5-4+6-0+5-8-10+3-0+7+10-1-9+1-2-0-10-5+1+6-1-8+8-10+3-8-9-1-9-9-2-2-2+2+7-9+1+4-5-4-2+1-10+6+5+6+3-4-0-1+9+7+10-9+9-0+7-3-9+10+7-1+1+6-6-5+6-8-3+4+2-7-8-3+10-1+3-2+10-0-7+5+4+7+5-9+3+10-1+9+7+7-7-0-0+8+3-9-5+5-10-6+10+10-3+4+8+2-9-0+1+5-0-1-7+8-5+9+1+4+4+2+8+10+4+2+5+1+9+9+6+8-3-4-0-0+8-7-8+8-0+6-10+3+1+9-0-10+2-10+7-6+10-5+5-10+4+4-10-4-1+3+2+2+3+5-9+6-4+2+7+9-3-3-9+5+9-2-2+8+10-2-2-7+6-3-1+0+8-9-6+4-5-2-6+2-5+2-1+3-7-0+7+10+1+8+4+1-10+8+6-0+6-7-2+8+4-7-4+6+2-10-0+9+7-8+8-1+10+6+2-7-9+10-4-0+10+7+4+8+3-2+3-4-0-6+10+9+8-10+6-3-7-8-8-10-9+8+10-6-2-2+7-8-6+2-6-3-7-1+0-10-3+6+10+2+8+7-4-5+4+9-6+7+7+8-5+3-0+3-9+0+1+9-8-6+3-4-6-3-8+3-7-2-10+0+8-0+4+8-5-6-0-9+10-5+5-8-7+8+6+8-5+6-3-6-3-5-3+4-6-3+4+1-9-3+5-8+3-6+5-8-4+9+3+1+6+10+1+5+1+9+6-10-8-5-3-3-1-10-7+3+5-2+3-5+4+7+7-10+4+8+5-0-2+8-7+1-8-10+3+8-3-4-5+2-6-7+6+0-9-1+4+4-9+4+10-6-7+10-0+9-1+10+0+8+8+7-2-3+5+9-5+1-1+5+9-2+7-4-8-1-9-3-7-8-4+1+7-0-6-9+6+8+6-5+5+7+3+8+1+7-2+1+0-7+9-9+5+10+1-5-3-4-6-7+10+0-4-6-8+6-3-0-2+7+2+2+9+10+0+6-1+8-6-0-9-9+10-6+4-10-10-9-10+7-0-1+0-9-4+5-6+10+5+5-8+8+8+10-10-4+7+5-7-10-10+7-7+5+1+9-5+6+0-2-6+9-4+1+8+6-4+9-4+1-1-2-5-2-6-1+2-2-5-9+7-2-8-1+9+1-2+8-8-6+8-3-8-5-6+3+8+1+1-4+9+7-10-3+5-10+1+0-5-6-7+9-6-8-5+4+0+3+2-2+10-9+2+2+0+10+3+0+8-6-3+8+10+0+3-2-3+7-2-1+4+10+5-8-1+9-9+4+9-10+7-2-10+6+4+4-5-9-7-4-1-9+5-2+6+0-4+4+8-0+5-10+0-7-9+6-8+3-0-10-2+2+7-3+10-2+3-3-9-0+10-2+3+3-9+5+8+4-3-6-2-1-0+7+10+4+2-10+4+6+2-4-9+5-3+8-10+0+0-4-1+10+0-3-0+9+9+5+0-2-4+4-9-4-8-10-9-1-10+9-3+6+3-1+0-1-6+10-4-5+0+1+4-3+7-2-8-3-4+5+6+7-9+8-6+10+7+4+2+10+9+0+5+9-0-0-10+7+7-6-3-2+1-5-2-7+0+10+6+0+8+1-7+9+2+5+5+9-1-0-9+1+10-6+2-1+6-6-2-10+4-10-10+1+7-4-0+4+2-5-4-8+9-3-7+3+6-5+9+7-9-3+9-5+8+9+1-4-3+7-8-4+9-7+10+4+8-8-3-0+8-9+3-9-1+9+0-1-3+0-7+4+9+4+0+10-0-6-3-8+2+3-7+4-6-5+8+3+4-1+6+2-8+10+1-9-2+10+1+7+1+2+3-1+9+9-3-10+8-9+2-4+7-10-2+4-3+5-10-9+9+3-10+5-1-7-7-6+7+3-10+9+8+7*5+8-7-7-1+2-0-5+2+1+6+7+7+5+6+0+0-0+2+3-1-10-2-0+4-9-1-10-3+9+7-0+0+10+10-8+9+1-10+1-1+7+6+7-7+4+0+1+2+4-4+7-4-0-10+7+3-10+9-1-1-9+4+7-3+8-1-2-10-8+9+3-3-8+4+0+1-9-0-7-2+7-10+0-8+7-10-7-8+7+6+5+0-0-3+0-7-3+2+3-1-6-5-0-9+0+7-6-6+5-8+3+6+0-6-4+4+7-0+9+4-9+3-10-3+4+7+4+4-4+4+5+2+3+5+6+2-5+1+4-10-8-9+6+9-9+4-7+4+4+4-3+3-7-9+3+9-6-0-3-8+1-4+0-8+8+5+1+6-6+8-5+1+8-8+6-8+7+2+2-10+2-10+10+5-7+9+9-6+3-2+9-8+9+0+1-0-1-4-4-2+2+10-6-4+9-5-7+10+1-9+0-0-4-7-5+7+6-1+2-2-10-1+5-9-9-2-3+10-1-5-10+5+1+9-4-2-8-2+8-7-7-7+7-0+3-9+10-7+4+4+2+5+6-3-10-3+5-8-7+1-4+2-9+4+2-8-3+9+2-5-0-2+0-0+2+3+0+8-7+7-8-4+0-5-3+5-2+8-7-6-4-1-2+2+1-8-0+4-10+2-10+3-5+6+6-3+3-2+5+3-5+4-1-9+1-0-1+7-1+3-5-1-0-5-0+5+5-2-4-6-7-3+6+7+5+8+2+4-1+9+6+6+4+5-7+4+9+8+3+2-8-6+2-4-10+10-3+5+8-6-9+10-1-10+7/8+5-3-5-10-3+7-9-5-10-1-2-10-5-5-5-10+6-4-5+5-5-5-5+4+6-8+5+8+0-1-8-6-4-8-8-3+1-10+8+4+0+9-10-3-2+5+9-2+4+10+2-6+1-3-9+4+0-4+5+2-9+6-4+10-3+6-7+7-2+10+10+2+9-9-9-3+9-4-10+5-7+4-3-2+4-5+5-1-3-10-5+3-3-6+1-9+7-2-1-2+9+0-2+4-8-4+6+1-8+4+0-2-10+2+10-8+8+6-1-2+2-2-10+0+10-7-2+8-10+8+3+1-5+0+4-10+7-0-6+9-3-3+1+7-2-7+3+2+5-10+5-5-9-6-7+5+7-8+6-5+8-2-9-6+7+10+5-9+7+1+1-5+2-5+1-3+4-2-1-7-5-8+3+0+5+5+4-6+2-8-1+2-9+9+6+10-10+7+3+8-1-10+7-3+10+7-10-8+6+9+4-1+8+8-9-9+7-5-10+4+0+5-0+5+2-1-3+1+7+4-4+6-5-9-9-8-1+9-1+1-6+3-5-10-10-9+2+3-2+2+3-3+9+6-10+6+8-7-4-7-9+10-0+4-0-0+5+3-9-7+9+9+1+7-9+8-4+10+6+7+4-2-8+10+0-8+6+7-10+2+1+1-5+9-1+7+6-0-0-1-7+2-4+0-1+6-2+8+0+10+7-9-4-0-7-6-3-2-2+4-2-6-9+7-6+8-0+4+10+2-10+10-8-8+5-6+4-8-6-1+0-1-7-7+3+0-7-5-0+8-0-9+7+10-6+8-4+7+3+6-4-0-10+4+0+2+3-5-9+8-6-0+1-5-0+4+10+0+2+2-6-7+7+0+2+3-4+4-2+8-7-8-3+2-3+0+1-4+0+1-5+5+9-7-10+2+3+8+1+8-7+9-9+2-0-4+7-3-0-5+1+8-1-6-10-2-6-5+10+4-1-6+9-2+10-4-5+9-8-5-8-4-4+7+4+4+2-2-3-3-5+0-0+10-8-4-0+9+4+0-2+5+3-1+5-10+1+3-7-6-10-7+4+10+6+7+1-8-2-9-5-7-4-2-6+7-7-10+5+0-8-1+5-8-9-9-2-5+0-1+3-7+7+0-5-8+10+9+10+9-1+6-6+8-2-5+2-3-10-10+6+6+4+9+6+0+7-1+5-5+0-7+2-8-5+4+7-1+5-9+3-4+7+3-9+2-6+3+0+2+0+3+9-7-6-7+9-5+8-6-2-1-0-0+5+8-8+5+0-8+10-10+6-6+5-0+10+6+9+7+10-2+9+1+6-10+10-0-9-10-8-2+4-5+3-3+9-5-10+6+0+0+8-1-6+0+5-4-4-2+10+9-2+3+1+1-6-2-9-7-5-0-1-9-8-7+4+0+1+0-9-4+4-7+2+4+6-9+3+6+10+6+6-4-5+7+3+9+1-9-3+7-6+2+3-3-1+1-2+9-2+4+6+6-3-6+10+5+1+10+2+2+2-1-4-5+4+10+10-10+9+7+2-2+2-1-6-6+9-10+5-4+5+5-2-4+7-5-3+9+7+4-7+10-0+1+7-5-9+4+4-7+10+9-1-4+4-10-1-6-2-3-10+4+10+6-7-3-0-5+7-7-0-7+0+6+9+9+8+1-3+5+7+5-8+4-1+5-10-5+3-9-1-6+4-0+1+4-5-10-1+9+2+4+7-1+0-1+6-10-1+7+1+3-3+9+5+5-2+6+3+1-5+7+6+0-1+0-2-2-6-5-9-8-3+7+0+3+5+3+2-7-0-2-6-7-6+4+2-3+9-7-6+0+4-8+8-10-10+3+5+9+1+9+5+8+8+1+3-2+9+6-6-5-6+3-5+8-4+8+5-3-9-5+1+3+10-2+2+10+1+10-0+7-10-7-9-1+3-6+9+0-0+8-4+6-6-3+8-6+1-5-7-1-5-0-10-6+6-8-0+6-6-7-1+2+2-2-6+9+8+1-0+6-10-6-4-7+6+6-7+5+9+8-0+4-4-1-10+10-1+3-7-6-6-5+0-6-8-0-3+8+1+8+5-9-7-4+0-7-6+5-6-0+0+7+5+0-7+3-3+6+5+8+9-3+10-3-0+9-5+5+6+9+0-3+10+10-2-8-2+6-2+5-2-8-2+4+1-4-1+10+8/6+4+0-2+2+4-6-8+0-10-6+0+9-10+5-0-3-4+4+10+2+6-1-0-10+1+1+3+1+10-1-0+5-0-0+9-2-3+3+10-1+6+9-1-8+0-8+3+1+1+10-7+1-3-1+8+10-7-6-8+3+10-8-4+10+7-10-5-3-7-5-10+9-1+5-9+6-0+10+3-9+4+10-3-8+3-0+5+7+5-10-10-5+10+3-4-0+0-0+2-6+4-7-7+5-2+8-1+8+4-1-5-6+8-8-1-2-1-5-7+10-7+3-6+6-10-10-8+4+8-7+7+5+10-9-1-4-5-9-4+1+7-3-0-4-1-3-6+3+9+7-2-4-6-4+2+0+6+6-8-10+4-1+1-6-8+9-2-4+2+5-8-2+1-0+4+9-3-4+8-6+7+3+5-4-7+6-9+1-6-4+2+6-10-10+4+9-4-8-6+10+0+10-4-4-6-5+1+2+8+5-9+7+6-0+9-3-0-1+5-10+1+0-0-5+0+1-8-7+5-5-0-7+1+8+1-1+1+3-5-1-9-1+0-7+9+4-4+6-9+1-4-1-3-0+6+2-8-5-10-0-7-9-5-6-2+9-2+10+10+5+6+8+8+3+2-8+9+6+1+5+8-0+2+9-6+10+7-2-0+8-0+1+1+0+10+5-7+3-8-9+10+9-9+9-8+4-1+1+7+6-6-1+7*8-9-6+3-4+10+3-9-0+0-8+3-8-10+4-1-7+2-2+5-2+4+0+7+2-6+7-7+10-10+1+2-4+0-4-6-9+8-0-9+10-8+2+2+6+1-6-10+1-6-9-0-7+1-7+1-9-7-4-8-9+2-6+0-8-10-0+6+6+9+4-4+6+3+7-10+8-1+7-3-4-2-4+9-9-9+5+9-3-1-2+2+3+5+9-0+5+4+9+3+2-3+9+10-1-6-3+9+5+6+2-4-5+2-7-10-1+8-9-6-7-4+10-0+6+10+3+10+0-4+2+5+2+3+4+7-0-9+0+7+9+8+5-9+10+8+4-7-9+5-0+4+10-6-0+4+6-5+5+10-9-3-6-4+8+9-7+7-10-8-5-7-4-6-1-0+10-4+3-1-1-10-5+6-6+6+4-10+4-5+7+10+6+8+3-9-1+3+3-3+10-7-1-3-9-5+4-6+0+0-4+1-9-2+5-2-3-2-5-3+3-7-5-6-2+1+2+4+8+1-2+7+1-2-8-4-6+8-0-2+9-3-10-0-3-9+1+9-3-8+3+2+4+10-6-2-0-0-8-1-10-10-4-2-6+9+6-6+6+8-5-6-5+2-10-1-8-5+0/4-7+2-8-5+9-10-3+5-10+2-6+8+10-7-3+8-7-8-10+4-9+2+8-6-8-0-7+0+8+4-10+6+9-2-8-7+9-8+7-0+4+10-10+9+0-0+10+6+10+9+5+8-3-6-2-4-3+6+5-3-6-6+2+7+5+0-5+2+4-9-6+3-0-9+10+7-0-10+3-8+2+9-7+4-3+2+2+6+1+3-4+8-7-2-10-3+9-7-4+7-1-4-8+3+7+0+3-10-7+2+8-2+4+7-2+9-7+2+10+3-3+6+9+8-4+0-6+0+9-3+6+10+6-9+2+5-1+4-2-1-7+1+3-8+1+6-1-8+7+5-3+10+7+0-2-5+4-8-1+0+3+3+6+3-9-3*7-9-6-0-1+4+7-3-1-6-10-10-3-9+4+3-7-1+4+9+0+4+2-10-6-9-7+5-5+8+9+7-2+5+6+10-9-9-7-5-2+7-6+2+5+7-4+6+0-3-2-2+6+6-10+0+3-7+10+1+5-10-2-7+10+3+6-8+9+0+5-6-4-3+9+5-1+7+1+1+10+3+6+8-9-4+0-4+5-0+0+5-5+2-9+10+10-4-8+2-0-10+10+2+5-2+2+1-6-3+9-1-7-5-4+4+0+7-9-8-5-8-8-10-0-1-5+1+0+6-9-3-9-10+9+2-0-4-4-2+5-5-6-0+1-8+2-10+3+3-8-4-8-2+9-9-7-10+0-6+7-7+0+4+1+6+2-6-4-9+5+6-2-10-5+10+0-3+10-7+10-4-2-5+8-6-7-7-0-0-8-10+5+7-10-1-6-0-10-10-9+10-2-3-10+7-9-4+5-10+10-9-10+7+6-3+5+2-0+7+0-10+1+2+7-3-5-6-1+10+0+2+7-9+6+4-0+2-0-4-2-2+3+0+10+8+6+0-7+4-9+6+9+4-7+5+10+5-5+4-3+7-4-4+9-2-4-7+9-3-2+6-5-5+0-10+6-7-1-1-6+7-2+1-2-2+10+9+7+4-6-5-4+8+0+6+9-3+9-6-2-8-9-3-8+8-2-5+8+4-1-7+3-0-2+5+5+0-8-4+8-4-7-2-4-4+2+3+8-3+10+1+8-1-5-9+6+9+1+5-0+1+7+5-5+3+2+1-4-1-0+8+1-4-6-10-2-7-9-10+7+9-10-1+3-7+6+0+9+0-2-1+0-8-5-10-5+4-5+2-10+10+4-10-0-4-3-10+1-2-10+4-5+8-8-4-0+0+7-2-3-6-0-4+9-2+1-3-8-9+10-7+5-7-3+4-10-9-9-9+5+7-7-3-1-8+7-8-4-9-6-5+5+4-10-3+5+1+4+10-7+6-7+3+5-5-5-8-0-5-9-4-8-2+6-3-1+10-10+2+0+7+10+9+7+3+3+5+10-3-5+4+0-10-0+10+2-2+3+2+5+1-0-5+10+9-10+9-4-2+9+2-9-6-3+2+1-10+5-5-6+5-1+8+10+2-4+8+2+4+0-10-7-4+3-6-0-3+0+9+4-5+4+6+10+5+4-7-7+6-1+0-6-6-0-3+5-6-4-5+6+9-8+10+5+8+1+4+1-7+0-2-2+1-2+6-2+2-5+6-10-2-4-1+7-10+2-10-4+2*6-4-4+8+2+1+7+6+7+4-4-7-10-1+9+0-4+3+4+10+1+6-8+2+2-0+1+1+0-10+0+2-3-9+6+3+1-2+6+1-9+2+1+1-9-0+6+6+6+7-2+10+5-5-4-0+2-2-10+6-8-8-0-4+5-8-8-3-7+6+5-1-8+10+4-5+3-0-2-2-5+9+10-0+7-5-1-5-8+0-7+4+5-3+0-0-8-8-7+1+3+1+5+10+1+6+7+0+3-1-0-10-0-1+8+0+5+5-9+9-9-0+7+4+1-1-3+0-5-9-6-7-7+3+3+6+2-8+4-9+10-8+1-5+4-5-0-3-7-9+0-0+9-9-5+3+1+0-3-6+6-5-8+7+8+4-4+8+4+9-0+1-3+10+2+7+9-1+8+0+2-3-8-7+9+1+4+9-10+3+2+4+9-1+1-2-4+7+4+6+5-1-1+10-6+6+3+9-10-9+9+7-7-1+5+0-10-0-9-10-6+9-10-4-9-7-9-1+6-7+0-4+7-2-8-6-4-4+4-9+0+6+1+10+3+3-1+10-9-2+1-7+7+2+7+8+7+0-9+3+6+3-6+0+8-6+8-10+5-0-8+10-3+2-8+10+10+1+5-0-9-1-10-4+9-4+1-2+7+0-9-5-9+1+9+4-9+4+10+5-7-7+8-10+7+0+6-3+3+0-7-8-0-8+3+4+8-10-10+0+1-8+10-5-9+7-2/8+6-10-1+9-8+9-5-6+6+1-9-0+0+3-7-7+9-10+1+5+6+3+1+0+8+3+2-9-4+6-2+7+4+2+6+7-2+10+10-4-7+0+8+4-4-1+10-8+2+2+5-2-9-8-4+4-2-0-10+5-1-0+4+8-4+4+8-9-8+6+9-7-1-8-3+6-9-4+2-5-7-3-8-9+1+5+1+3+6+3-4-3-7+6+5+10+10-9-8+10-7-2+9-1+8+3-7+4+1+5-3+5-6+4+3-9-9+1-0-2+7+5+0+5+5-5-7-9-5+3-2+9-10-9-9+6-1-5+5-4+9+1-7-9+3-2-7-1-2-6+9-0-4+6+8+8-5+8-7-7+3-3-8+1-1+4-0+7+5-2+2-1+8-6+5-10-10-8-8+0-7+7-2+4-9+6-0+1+8+8-2+4-4+7-5+10+5+4-3+10-3+9-8-9-7-8-7+0-4-5-0+9+3+10-8-5-2-3+1+10+10+9+1-7+10+7-7-0-0+5+4+3+5-8-7-6-7-5-2+2+10+1-1-8-10-10-7+2-0-5-0+6-10+4+6+1-5-7-0+1-10-2-2+2-5+10+2-9-4+10+2-3+5+2-2+8-7+1+10+7+0-7-2+6-5-0-7+7-6+5+7-3-5-5-2+2+0-9-4-1+3+5-7-3+10-4-2-3-5-8-4+3-0+2+1-4+7+7+9-8+6+5-2-1-3+8+3-1+8+6-5-7-1-2+4+10+5-1-6+7+9-5-5+8+7-8+7-5+10-2+0+10-4-7-10+8+3+9+9-8-5+6+9+0-9+8-8+10+4-0+4-7+10+2+9-3-5-4+2-3-9+4+0+8+6+8-3-6+7-9-5+2-6-8+4+1+0+7+7+0+1-0-6+6+1+0+9+5-0-9-10+1+0-10+3+3+0-9+0+7+0-4+9+7+3-1-4+4+5+7+10+3-1-6+6+0-8+8+6-6+7+5-7-6+0-2-7-3-0+10+8+9-3+3+3-5-10-6+1-0-7-6+0-6+2+3+10-1+0-7+9-7-6+7-9-5-4-9+9+8-6-7+7+1+8-2+10+3-8+6-8-9-1+8-9+6+5-4+7-10-8+5+3-1+6-4+2+10+0+0-7+3-9+2+9-10-5-8-1-5-10+0+3+3-0-1+4+0-0-5+1+7+7+3-9-7+8+5-1+9+4+4+3-7-5-0+6+10+2+8-2+6-1-1+2-0-6-0-5+5-8-4-9-5+5+8+10+7+10-8-3-6-5-5+9+4-0+9-4+9+10-7-1-3-1-5+7-7+4+0+4-9+2+3-4+3-0-4-7+10+10+1-0-7+10+6-10+8+1+3-9-3+9+10+0+3+2+4+7-4+8+0+9+5-7-9+5-7+5-3-3+6+5-6-3+2+6-5-7/5+8+7-2-8+10+2-7-0-2+8-2-6-2-0+5+0-7+1-2-1-4-9+6+9+5-9-3+10-1-5-8-3+6+1+0+5+4-9+2-10+1+1-7+3-9-2-7+0+6+3+6+1+5-5+1+3+8+1-7+5+7+2-2-7-1+6-4-3-1+7+1-6+4+10-4+8+4-10-1-9+1+0+3-10+2-1+6+4+7-5+9-3+2+5+3-4-3+3+1+7-0+1-2-7+6+1+2+5+0-1+0+9-10+9+3-0+7-9-7+6+10+2-3-9+7-7+2-6+3+2-3+1+10-5-7-8+6+1+8-5-0+1-3-10-6+7+3+6-1-6-2+2-7+10-5-3-5-9+8+9-6+5-2+4-0+2+6-8+8-6+7-3+2+3+8-9+5-5-6+9+6+9-3-5-1-7+9-8+0-10-7+2-9-1-9-2+5-4-7+5+0+7+5-1+3+1+2-0-9-6-4+3-5+1+8+7-9-2-0+10-1+9+1-2+3-9+6-10+10-2+0+9+10+1-3-3-8-7-0-4-5-7-10-3+7+2-10-7+4-6-5+1-10-6-6-9-0-8+3+1-9+4-2+2+2-7-7-3+5+1+4+1-6-4-2+7-0-4-2+4-4-10-6+7+2-3-4+1+10+9+4-10-0+3-0+9-9-4+8-8+4+8+2-2+9+2+6-10+5+9+4+10+7-1-3-2-5+5-5-0-1+7+6-10-9-8+10+5-6+0+2-8+10-6+9-10+5+3-3-5+6+6+5-4+5+5-5-2-6-0-6-10+2-10+7-0-7+10-7-2+1-6-4+3+2-5-10+2+10+10-7+1-9+1+9+7+10-1-5-4+1+9-6+4-7-8-3+5-6-7-0+0-6+8+5-2-9-5-8-1-0-4+2+6+8-6-2-10-4+6-3-3-6-6+2+1-10-9+5-5-2+4-3-7-4-10-0+6+9-9+9+5+1-2+4+5-1+4+1-8-10-2+6+6-9+9+8-7+2-10+5-0+3-1-3+9+0+7+0+5-5-0+6+0+8+9-7+6+6+5+9+8+9-4+10-8+7-10+7+7+10+3-2+7-1+6+6-4+6-8+3+9-6-9-4-9-10-5-4-8+4+7-5+1-7+7+4+10-10-9-1+2-10-6+3+0+5+9+1+0-4-7+6-5+10+2-7-2+7+0-7+2+10-4+9-8+6-4+1+10-3-8+5+4-0+5-9-8+3-0+2+6+7+6-8-10+5-4+8+10-6+1-10-5-2+3-0-5+1+8-7-2+5-7-10-9-0-4-8-1+6-3+10-8+3+2+8-5-2-0+7+4-8+5+8-9-1-9-4-4-5+9+3+5+8+2-0+4-7-7+7-6-4+10-8+10-8-0+5+2+6+5+2+6-6-5+1-5+0+10-2-3-0-8+7+5+9-8+6+0-4+0+3-9+9+1+9-0-1-5-10+5-5+6-0-6+2-8+4+7+5+7+4+5+2+7+9+7-3-3+6+7+2+10+9+2-0-2+6-9+2+2-1-1-2+3+8+9-10+4+3-1-7+6-10+7-3+8+8-3-7+8-5+4+10-2-5-5+2+4+8+6+10+3+4+9-3+6-5+9+0-9+2+3+5-3-3-10+3-10+5-0-3+3+4-0-2+3-10+6-8-0+8+0-3+2+10-5+8+3+9-2-7+2+8-7-6-2-3-2-0+4+1+1-2+3+9+10+6-3-10-10-8-6+9-2+4-2-5+8+8-5-8-8+7+2+6+0-8+7-4-8+3-4-2+7-1+0-3-6+3-9-8-0-1-9+9-6+9+3-6-4+6-2+7-10-5+10-7-1+6+1-4+9+5-10-10+0-0+7+9+6-2+6+9-6+2+6-6-10+5+4+4-4+10+1-3-1+1-3+6+10+10+6-4-5+4+5-7+2-2-4+3+8+4-4+6-10-10-10+10+5+0-2-6-5-3+2+4+3+3-0+0-9-7+3+4+7+7+2-8-1-8-5-8-1-5+5+4-10+1+7-1+6-0-3-2+2-3+1-5-7-2-4-10-10-10-2+10-2+3+4-2+3+0+0+1+7-9-7+1-6+10+3+1-8-10+1-5+6+6-3-3-7-10+0+10+7+5+1+1+0-7-6+0+10-1-1+7-4-7+0-9+5-9+0-8-2-3-4+7-2-7-8+2+10+0+3-8-7+6+8-4+1-5+1-2+8-6-5+5+3-0-4+10+9-6-2+1+10+0+6-9-2+2+9-10-7+10-4-4-8+9-3+8+5+7+0+3-0-7+7+1+2-9+8-4-3-8-10-2*8+9-8-10+0+0-3-6+4-0+4-10-6-10+2+2-1-6+7-1+8-4+6+3+3-6-7-1+10+1+1+6+8-9+10+6+1+6+4-0-4-8+3-2+9+7-1+7-7-9-10-1+7-7+5-2-1+5+4-3-10-5-6+9-5+0+5+4+7-3+7+5+5-1-3-7-9-2+0+8-7-9+8-2+1+1-9+10+7+3+2-10-4-8+6-10-8-5-0-2-3+7+8-4-7-0-1+5+8+6-10-0+4+5-4-4-6+2-1-10+1+3+0-1+4+0+5-3+2+0+5+8-5+2+2+6-0+10-1+2+2-3+6-6-7+8-8-2-7+1+8+3+8-4-0+10+7+10-6-2-9+2+8+2-6-3+6-0+4-8-1+3-1+3+10-5-9-2-2-5-0-5-7+9-2+8+5-0+9+0+10+3-4-6-8+0+5+1+3-2+0+10+6+8-5+0-4+3-6+8-9-6-10+0+7+1-4-4+8+2-1+6-2-6-3+2+9-0-8-5-4-5-4-6-3+9+7-0+0+7-5+0+4+10+4+4+4-0+4+9+8-5-6-3-8+7+10+0+2+9-8+5+0+6+10-4-8+9+5+6+6-7+9-9+1+9+4-2+9+10+1-3+10-6+0-4+10-9-0+4-4-4-9+5+5-8-5+5-9-2+3-8+6+9+6+4+1+6-1-1+10+7-0-6-6-3-5+7-9-8+6+1-8-4+10-1-9-9+2-0+2+2-0+9-6+10+0+10+7+0+8+8-9+4+10+5-2-9+7+10-0-5+1+9+4+5+4+2+6-9+4-5+8+0+4+10+8-3+2-3-5-6-0-10-1-10+9-3-1-0-4-7-4-9-10-5-4-4+6-9-9+8+10-6+2+5-3+2+5+4-7-10+4+3-9+5-1+4+5+5+8+8-1-6-2+7+4+10+8+4-3+1+5+2-10+1+4-6-2-5-4+9+7-5+3-9-0-8-5+5-8-6+9+8-3-7-7+9-6-3+9+6+10-2-7+4+9+4-3-4-3+9-7-6+8+4-5-1+4-4-5+10-0-10-2-1+8+5-6+1-0-6-10+8+4+3+10+5-5+3-7+4+6-3+2-10-1+10-7-6-0-2+9+9+4-6+6+7+4-10+3+4-8+8+7+2-3-9-8+4+4+3+8-1-9+9-2-1-4+0-10-10-3-2+9+3-4-5+10+10+0+3+6+9-9-7+1-6+2-0-0+10-8+7+6-8-5-10-6+2-0+9-9-10-3+1-8-1-9-5+0-10-3+0-2-9-10+6-2+0+0-1+0-3+4-0+1+10-10+4-10-8-7-5+9-10+10+3-6+1+2+2-9+9-0+9+6-3+8-0-9-9+0-6+9-3+1-9-2-5-4-5-3-1-6-0-1+2+6-9+9-7-7-6+6-1+6+6-8+1+9-5-9-4-3+7-10-3-8-9-10+8-10-5-6+5+8+9-2-4+10-3+8+5+7+3-3-6+1-3+2-9-6+0-5-2+2+6+3-7+8+9+9+7-1+0-10+5+0-7+6+4-4+3-6-5+1+5+5-7-3-7-0+4+0-1-5-8+5+1+9-8-10+4+4+2-10-6-9+1+10+6-8+10+2+10-2+5+6+1-3-1-9-1-4-3-4+0+5+10+10-4+6+8-7+9+6+9-1-2-7-10+0-2+8+8+2-1+0+6-4+8-0-3+10-3+5-0-10-6-10-7+3-7+2-10-4-8-6+2+0-5+2+9-8-8-3+1+7+2-6+10-9-1+1+2+1+6-5+0-2+8+2+2-2-7+1+5+7+9+8-4-10-9+6-7+10-0-5-9+10+9-4-9-7+5+0+3-6+0-9-8+10-6+10+6+0+4+3-3+6-6+6-4+3+2-0-0-0+4-1-0-9-7+3-8+0+10+10+2-2-3-9-2+4-0+9-9+10-1+0+4-4+2+3-3+5-6-1+9+9+0-3-8-2-7+4-7+8-2-4+5+4+0-5-10-4+10+4+0-6-4+2+5+2-7-0+7-0+4+5-8-2-7+8+8+3-7+8-4-10-2-6+4-3+4+0+3-10-4+0+7-5+9+9+9+9-0-8-4+1-4-3-10+3+5-6-9+0+0+4+5-8+7+8+0+10+1+1-10+9-6+10+6-10-4+8+1+2+10-4+2+5-6-3-5-0+8+5+1+6-4-2-5-5-6+1-1+4-10+1-8-8+0+4-1+6-7+7-4-3-3*9-3-8-2-1-8-1-8-3-1+9-0+10-7+4+2+6-3-4-7-9-3-3-8-5+0+2-10+4+10+10+7+0-2-1+0-2-7-1+10-10-4-5+3+3-1-7+6-1+1-7+8+1+7-7-9-6-7+2+0+0+4+2+6+3-10+3+4+9-3+0-6-4+4-5-8+10+9-8+9+5+3-5+1-0+0+8-6+10-6-2+0+8+8+1+10+10-1+0+4-1-8+8+5+4+3+0+0-1-5-4-6-2-1-0-1-7+3-9+6-10-10-2+10+3-4-0-3+7+4-8-0-4-4-3-2+1-7+2+3+2-4+3-10-2+9+4-5+6+6-3+0-8-9-0-10-6-8-7+8-1+2-1-5-0-7+8+3-0+9+10+3+8+9-8+7-0-6+9-0-6-6+8-10+4+3-10+2-5-2-3+2+2-3+10+5-7-9-5+10-7-9+3+9-5+4+5+0+2+4-0+3-6+6+1-3+5+1-3-6+7+1+6-0+1-5+1+10-2+8-3+7+9+2+7-7+0+8-10+5-1+2-10+6-10+3+1-8+7+8-10+9-6-1-3+0-4+2+0+7-9+4+5-10-8+7+7+2+4+2+9-6-6+3-0+2+3+10+2+9-3-8+3+2-2-10-2-1-8-3-4-4+1+3-8-0-6-9+3+8+4+0-6+1-8-4+7-10+4+5+10-7-7-10-3+8-8-9-10-10+2-0+3+9-7+0+3+2+3+10+9-5+8-1-7-3+7+10+0-0+5-3-3-0-6-5+9-7-1-4+9-8+7+10-4-1+7+6+3-7-7-2+8+6-2+0+3+3-0-2+5-2+10-8-4+2+1+1-10+0-5-4+10-1+9+9-10+7+7-9-3+6+5-8-6+4+2+1+1+0-0+4+9+10+10+3-4-9+8-9-8+10-9+10+5-8-2+2-2-5-2-5+8+1+5-8-2-7+6-7+6-10-0-3+4-4-6+9-2-5+1-4-10+6+0-0+4-3+6-10-9+8-10+9+9-6-6-1+5-1+9+0-0+8-8-0+5-9-6+8-1-6-4-4+9-3-3+3+5+1+9-3-2-0-5+4+2+5+1+5-4-10-9-3+6+9-5+6-7+3+10-9+6+0+4+2+8-9-0-3+6+4+6+3+10-7-0+9+1+6+1+5-3+8-8+5+3+4+7-8-0+2+9+2-9+10+6+0-7-1+5-4-0+2-10-4+0-1+0-10-5-0+4-8+5-10-6+7-7-7-7+6-4-2+7-1-9-1-8+1-10+10-3-1-8+6+8-0+3-1+2-3+9+8-4+6-1-7-7-3-10+9+5+5+7-4-5+1+1-8+6-6+9-4+7-2+1-1+6-4-7+6+3+6-3-8-8+10+6+2-10+10+1+1-7-6-1+4-2+6-9+3+4-7+7-9-0-2+6-6+0+8+7+0+3-2-9+8+10-2+7+6+9-6+0-6-0+10-6-8-4+2+4+1-4-8-1-10-7+10+9+3-8-5-8-2+0-4+9-9+0+0+10+4+9+4-8+10-5+2+5+10+9+0-1-9+9+8+10-10+0+8+8+6+0+8-6-10+3-10+5-3+1-7+3-3+10+1+2-2+4+4-4+4-3-5-10+7+9+0+2-5-7-3-5+8-8+8+5-1-10+7-1-5+10-9-0-4-0-9-4+2+5-6-4-6+10+2+4-4-9-8-6+2-5+1+7-3+4-6+7-8+8-4-4+6-6-10+5-0+8-9-10+6-8+2-5-1+4+0+7+3+7+8-5+3-2-1-10-0+6-6+2+9-0+10-5+10+4+8-2-5+1+2-6+9-9-4+8+0+7+7+3+10-5+3-1-5-3+8+6-1+10+8-0-3+1+8-4-1-5-6-5+4-6-0-5-3+2+3+1+9-7+7-0+10+6-0+1-4+4-8+0+3-7+1-7-4+8-10-7+10-4-2-0-0-2-7-5+9-8-2-2+0-8-6-0+1+1+4+8+5+6-8+4+5+9-4-3+3+10+4-10+3-2-4+1+4-6-0+7+0+5-9-9+10+5+9+0+1+6-1+7-3-5-6-8+0-4-5-6-10-2+2+0-1-5-1-1-2-4+8+0-4+10-10-0+0-5+8-8+0+0-4+4+5+7-3-5-7-1-8-7+10-4+10-0-4+10+5+3+5-10+8-8+7+7-0-1+3+7-1-9-10+3+5+10+6+5-9-8-9+8-9+5-3+9-8-1-10-10+5-5+10+0+6-3-2+1+9+6+8-3+0+7+9-4+9-2-9+4+8-8-8-1+0+9+7-10+4-3+9+8-3-1+2+8+4-3+7+6-8+0-7-9+2-2-7-10-2+3+0+10-8+9-8-7-8-0-10-7-6+10+4-5+7-9+5+0+6-10+0-2+7+9+1-8+10+0+1-0+1+5+1-9+1+10+10+4+3+4-5+3+0+3+8-5-3-9-4-6-0+4+10-9+7-3+8+0+3-4-6+2-1-10-5+9-5+4+5+8-6+0+4+10-6+4-9-6+8+6-5+3-1-9+5-3+5+0-0-5-10-4+3-0+1+6+0+4-3-9+0-7-8+6-3-5-4-6+7+10+6+5-7+0+2+6+0+0-9-4-1-10+9+5-9-5-8+2+5+4+8-1-7-3+6-0+0+0+5+10-2+0+2+5+3+4-8+0+2+9+0+3-6-6+8+8-10+3-5+3-4-4-5-10-0+0-1-3-5+7+7+7+2-8+6+8-4+0+5+7-6-7-7-9-1+2+0-3+3+7-1-6-10-8-10-5-1-0-0-9-10-5-9+10+7-2+9-10-6+0-4-2+0+6+3-10+7-7-7+0+9-3+0*2-5+0-7-0-2-2-7+1-3+8-3+1-2+8+6+8-7-4+6+3+4+4-0-10-10-10-5+5-10-5-1+2-10+0+7+6+2+1-4+8+2+4-9+6+10-1+5-1+4+5+8-2-3-10-5-4+9-9-9+5+5+1+8-8+4+5-8+8+3-3-0+0+8-1+3-9-9-4+5+4-6-0+7+10-10-3+2+3+8+8-9-7-7-3+5-8+8+5-5-8+10+10+6+5+8+2+6+0+8-2+9-8+5-3-8-0-8+5-6-9+4-5+6-7+10-2-2-8+9+3+6+0+6-9-8-9-10-0-8+7-6+6+2+8+9-3+2+4+6-10+6-3-5-1-6-4-7+2+0+8-6-6-10-2+1+10-7+10+8+4-0-7+9+0+10-7-4+7-8-0+2+3+7+10+10-8-6-8-0-5+7+3+3-6+0+5-7+7+4+4+6-10+8+6+2+6-8+0-8+0+2+0-4-0-2+3+10-7+0-9-6-7-8+7-10-2+1-9-4-7+3+7+9+7-8-8+10-7-5-6+7+0-9-2-0-0+0-0-1+2-1+2+8-5-10-2+5+4-6-10+3+8+5-10+7+9-0+0-7+10+9-3+5+1+5-10+7-1-7+1-7-4+9+7-7+3-7+6+10-0-2-3-8+4-2+6+9-2-8+0+8+5+7-6-7-1+1-0-6+1+10+9+10+2-6-1+10+2+0+10-5-10-1-10+6+9-10-2-5+9+7+5+1-5+6-0+5+1+3-1+6-8-4+9+0-2+6+7+0+5+4+7-1+10+10-5+3+8+7-5-1+7+0+10+7+3+2+10+0+3-10+1+0+7-6-3-0+5+9-1+8+2+3+10+3-1+6-6-1-10+6-0+3-1+7+0-1+5-5-1-5+10+2+9-0-6-10+3-8-0-1-5-6+7+8-6-3-3-10-0+2-9-8+2-6+0-2-8+9+3-6+1+1-7+5-0+0-4+5+1-10-3-2+3-0-10+7+5-5+3+10-5+3-3-5+4-9+8+0+6-9-6-1-0-9-3+5-3+6+8-6-6-8+6+9+9+10-1+4-0-3+9-9+4-10+3+0+3+1-9-5+7-9+10+1+1+0-7+7-5-1+2-4+3+4-7+4-4+7-6-1-1+10-10-0+2+1+1+5+6+3-7-8-9+5+2-2-3-9-7-6-8+6-0-3+5+8+2+0+5-5+3+3+9+2+2-0+5-10-2+5-2+6-9+5-1-3-0-6-1-7+5-0+0-10-1-1+1+7+7+3-9-10+4-0-6-4-0+1+9+6-10-6+10-4+3+7+5-0-6+4+8+3+5+6-0-10-7-1-3+5-5+10+8-3+7-2+7+0-0-1+4+7-6+1-8-4+1+8-0+7+1-3+4-5-3-7-10-7+10+4+9-6+9-5+0-1-9+7+6-9+2-2+7+9-2-5-3+8-10-4-7-10-1-4-8+1+9-6+5+7-3-9+0-4+7+10-4-0+2+2+2+0+9-6-10-6+5-1-0+0-1+1-4+0+6+0+4-9-6-5-5+5-0+6-0-5+10-8+10-6-4-8+7+1+2-8-1+5-6-8+8+9-4-6+8-4+5+6-5+3-7-9+6-6-6-7+3-2-1+0+6-5-8-6+0+9+5-7+10-1+9-2+0-8+4-3-4+1+6-8-7+9-6-6+10+4-6+6-10-0-6-10-2+1+1-6+8-9-7+2+1-2-0+3-7+3+7-1+2+5-2+0+3+0+7-7+10+3-3+2-5+7+4+1+7-9+0-2-3-8-9+8-1-10+2-9-0-3-3-7+5-2-2-9+3-3-0+10-3-5-10-7-5-7-4-5+10+0-0+6-2+4-7+4+4-6-9-3-1+9-6+6+5-10+0+10-8-5+8-8-7+9-5+2+2+7-10+3-8+3+1+2+10+1-4-6-7+4+8-1+5+4-6-9+6-8-5-6+1-8+0-7-4-2-3-0+3-10-5-6-8-10+9-9+3-6-6+3+1-1-8+0-1+9+4+0-7+5+10+4+0+8-2+8+7+3+1-1-4+3+9-8+8-5+7-0+1-2+2+0+8-5-1+7-9-10-9-3-5-0+5+7-10+6+8-2+10+9-6+4-2-6+1+0-6+3+5+5-9-4+4-8-10+10-7-8-5-4-0+6-2+4+10+9-1-8+1+3+7+2+2+1-3+6+0-7-5-9-9+6-0-1+4-10-3+2+10+6+3-4+0-10-6-1+6-0+1-3+2-5-2-6+5-8-9-8+4-4+9-3+9-6+1-4-5-7+4+8+4-3-9-4-6+2+10+3+6-8+3-8-4+8-5+9+10-10-3+2-5-1+2+8-9-1+9-6+2+0+1+8-9-4-1-5+0-8+8-1+3-5-5+6+10-0-0+6+7*8+0+1+7-9+1-5+9-10+0-0-2+6+4+0-6-2-10+6+0+2-8-7-2+8+8-0-2-5-4+6-9+10-2+7+5-4-4+6-2+8+5+3-8-10-8+8-1-2-3+8+2-9+8+3-6+9+9+4-8+1-7-8+9-3+2-7+0-10-2+8+10+9+7+5-2+5+0-5+8-3+4-2-5+9-10+1-9+7+10+6-2+9+2-3-2+0+4-3+3+10+6-10+0-5+3-7+7+10+0-10+9-9-3+2+3+5+10-9+10-7-1+7+7+4+7-0-5-8-4-3+7-0+8-9+1+0-2-1+4-4-8-9+0+3+8-1-2+10-8+4-2-8-10-10+6-2-0-4+2-5+8-2-3+7-0-0-6+5+5+8-7-1+6+3-2+2+8-3+0+1+0-6+3+10-6+0-4+4+6-10-3-4-8-1-4+5-8-0-9+4-2+8+5+10-6+8-3-4-1-0+5-0+5-6+4-10-5-10+1+4+0+0+3+4+8+1+2-5+5+2+2+3-6+10-4-5+6-9-8+1+0+3+3+1+9-3+7-3+1+5+8+10-6-4-2-2+6-9-0-9+7-10+10-7-10+4+10-10+6-9-9+4-2+10-2-0+6+9+2-10+4+5+8+1-7-6-5+5+10-5-4-7-7+9-0+2-9+9+2+5+6+1-6+0-6-0-7+0-3+5-3-6+10+9-9+2+3-0-9-8+7-0+9-8+4+4+4+2-5+9+4-8+1-2+8-8+6+2-4-2+0-3-3-0+3+7-2-3-10+0-9+3+0+1-10+1-8-2-0-1+8+9-5-6-4-3+0-8-10+0+7-7+1+9-6+6-5+3+0+2-1+6+8-3+0-5+4-0-7-8-5-8-10-5-6-2+1+2+3-4-7+2+10+8+6-2-9+7-9-9+2-9-5-9+6-0+8-1+5+2-4-8+9-0+9-3-6+0-7+4+5-0-9+8-1-1-10+3+0-3-6+3-10+10+4-3+2+9+6-3+3+6+2-10+10-0+5-2+5+9+7+4-1-4-9+3-7-7+2-7-9+7+6-1+3-5-3-0+2+2+1-0-3+5-5+10-8-0+10-9-8-8-6+8-10-0-6+4-7-10-9+0+7-5+8+2-1+3-6-3-0+6-0-7-8-2-1-5+7-2+10-6+7-6+2+3+0-9+7-1-7-4+7+0-8+3-9-4-4+6-6+4-9-3-10+8-4-3+1+8-0-8+4+10+9+2+5-4-5-8+1+8-9+4+1+5+7+0+10-6+1-7+9+1+8-5+10-0-5-8+2+8-3-7+1-4-1-2+4-5+7+1-5+4+5+8+3+9-3+4+1-6-8-8+0-2-4-2+4-9-1+1+6+9-7+9-8+10+0-0-8+0-4-10-8+9-7+10+0+2+0+1-7+4-6-10+3+0+8-4-8-9+1-0-5-7+8+7+0-6-5-7-9-7+10-4-7-1-9-6+5+10+10+10+7-4+8+8+4-3+0-6-4+7+3+0+9-6-5+10-10+6-5-9-10+1+2+5+7-8-4+10+8-9-1+2+1+10+8-6-3+8+0+4-4-9-1+5+5-6+10+4-3-4-2-4+3+8+2-0-0+8-3-6+6+1+8+10-4+2+1-9-4-8+5+7+7-8+7-6+2+1+6+3+4-0+0-4-0+6+3-0-10-4+7-1-3+3+1+3+8+4-8+5-2+2-9-0+3+9-2-1+10+9-5-5+5+5+9+6-2+10-7+7-2-7+5-3+2+5+8+3+10-4-1+10-1+0-8-10+7+8-3-8+10+10+2-4-2+2-8-7-1+7-7+8-3-8+1-5+0+4+3-0-5+9-3+3+10-3+3-9-9-5-7-3+1+9+10-8-0+3+4-8-10-2-2+9+8+9-1-2-8+3-7+9-1-10-9-8-0+3-6-7+4+4+5-5+4-0-2-1+5+10+5+4+1-6-3-10+5+7-9-10+0+2-0-0-10-5+5+1-2+3-6-6-8-7-8+2+5+6+10-1-6+1-10-3-4-4+1+7+7-0+10-6-6+7+5+7+4-3+9-9+10-4-9+4+2+6-0+1-2+2-8-2-6+0+1+1+8+4-8-10+8-9+4-9+10+7-1-8+9+8+4-9+7+2+4+4+3-0+10-3-4-7-4-5-7+8-0+5+0+3+0-3-1+9+10-8+0-2+8+2+8-8+7+1-2-1-6+7+1-0-3+4+2-3+2-9-9+8+2-10+1-6+2-4-0-7-3-7+10+9+1+6+0-6+1+6+2-7+7-10-4-0-2+2+1+0+9+10-9+0-6-9-8-8+10-8-0-0+3-10+1+7+5+4+5+6+10+4+7+0-4+1+7+0+9-2-1-1+9+0+7-0+4+6-4+2+2+10+10+3+7+0-5+9+6-6+3-7-5-0-5+9-5+3+9-2-3-3-2-6-6-7-4-3+7-4+4-0+0+4+3-6+7-2-9+6+2-0+8+10-1+7-0+8+6-6-4+1-6+0+4+0+5-2-6+7-0-10+7+5+6-4-1+10-5+6+6+0+10-2+1-3-9-3+6+4-5-3+1+0+2+8-1-1+2-10-2+10+4+8-7+7+5+2-5-7-4+6+0+1+10-7+1-6+9-4-6-6+1-5+3-5+5-5-9-4+7-7+10-2-5-5+10-6-6-5+0+10-1+2+10+5-2-2-7+4-7+6-10-10-2-6-6+10+6+10-3-7+1+10+7+8-7+3+6+0-8+0-7-10-10-2-1+1+1-7+9+8-10+9-8-9-2-10-6+4+1+9+2+10-0+0-1+8-8+2+0+7-0-3+0-9+10+5+1-2+0-6+0-7+8-7+5+3+3-10+2-5-4+5+8+6-1+5-9-10-4+9-5-6+1-5-7-3-10-4+10+0-0+9+7+10+5-1+7-10+2+8+9-5-5+10+4+1+9+6-0-3+0-7+5-2-5+9+0-7+8+1-2+3+9+2-7-7-0-0-7-5-10-0-7+1+0+3+7-1+8+8+7-9+9-2-2-10+7+7+1-8+8-0+9-6-9+9-10-6+5-8+4+6-8-10+3+7-2+0+6+5+8-1-4+1+6+10-1+8+10+6+1+3-0-7+0+8-4-9+9-5-3+10+5+10+2+3+7+3-10-5-1+5+6+8+9-10+8+4+5-9+7-4-10-3+5+8+1-1+7-2-7+0+5+0+7-0+0-6+7-8-10-8-8+5+3-0-9+10-5-9-0-7-10-6-0+6-0-8-1-9-9-5+4-5-7+1-5-6-9+1+3+4-1-6+7+7+7-4+0+9-5+2-9-10-7+8+5+4-6+8-7+4-6-5-3+10+1-7+8+2+7+9+1-6+1-6+10+8+0+0+8-9-4-8+0-5-5-2-3+8+10+5+9-6+0-10+9-7-8+3+8-4+2-5+0+10-4-1-2+3-5-0+10+3-9+0-9-1-10-2-3+8-6+9-4-5-1+9+7-0-6-4-6-6-0-4-10+7+4+7+2+6+10-0+2+5-0-4-6+1-9-10-0-7-6+7-6-5-7+9+3-2+5+9-3-4-0+3+6-9-6-8+2+0+4+10-10-1-5+3-9-9-1-0+8-5-6-9+6-5+0-3+10-6+10+9-6-3+5+5+2-6-4+4-9-0+10-1-1+7-4-3-7-9+10-1-10-7+10-10-10-5+0-2+1-8-0+1+10-4+3-7-9+9-10+4-7-10-5+7+1-0+5-10-2+1-7-6+6+2-7+10-7+3+2+6+7-8-8+7-3+6-10-1+2+8-6-0+4+5-0-10-5+5+6+10-10-5-7+1+3-1-10+7-6-6+8+10+2-8-8-4+6-8+9+1+9-5-9-7+3+7+2+0+7-2-10-4-9+6-8+8+6+6-5+6-8-3-2+4+1-9+10-3-2-0+8-0+3-6+5+8-5+7-9+8+9-10-8-2-5+0+9-0-9+2-4-1+1+5-10-2-4+2+6-10+6-9+0-7+6-1-5-5+5+1+5-7-3+8-4+7+4+8+5+10+3+2+2-6-6+3-0-4-6+9-0+3+0-6-10+2+3-8-1-5+3-10+2+8-10-0-0+10+7-9-2-7-7-6+10+4+6-8+10-10-0+1+9+10+5-10+8+6-6+9-2+5-2-8+9-6-6+4-1-9-1-1+5-4+8+2+7+6+9+7+10-9-5+9+2+10-5+7+7+0-9+8-5-2+3+4+8-0-5-8+2-6-8+5+7-4+8-6+2-5+6-5-8-3-1-3-4-5-8+0-1-0-7-8+3+4+0+5+7+5+8+0+7-7-10-5+6-9+7-2-8-1+6+8-9+4-4-10-10+1-8-5-5-10-2+7+6-4-9+4+0-3+0-9-1-2+1-6+6-10+1+0-9-4-4-4-5-9+1-1+0-2-7+0+10+6-8-6-5-1-2-7-9+8-8+8-5+9+10+3+8-1-6-8+4-7+8+8-8-10+4+1-1+2+9-6-8+9-6-3-2-3-0-6-4+2-3-0+6-3-2+0-8-6+4+7+1+5-8+2+8-0+10-6-8-6+5-8-1+3+0+9+0+3+4+0-0+1+7-10-6-4+3+8+8+9-2-8+6-4-6-2+9-9-1-8+7-2-7+1-8+2-1-3-2+6+0-1-8+5+8+9+0+3-6+5-7-4-6-0-0-10-6-7-0-9-7+1-2+10-9+8-2+2-10+6+6+3-5-9+3+3-2-1+1+7-5-7+2-7+9+5-10+5+2+2+8+10-3+8+6-1+9-9-7+6+1+5+6-3+6-1+3-8+9-4+8-10+6-10+2+10+2+8-4+2-4+4-5-4+0+1+0-3-2-3-6-10-2-4-10+3-8+5-7+0+2+8-9+2-9+1+5-0+3+2-6-7+8+7+6-10-9-5+8-2+2+1+9+8+9-9-7+9+2+10+2+8+9+7+6-2+4+10+9+2-10+1-3+1+1-6+9-6-8-10-1-3-4-5-0+4+3+0-8+9+8-7+5-10-1-6+5-0+7-0-0+0+4+2-8+3-9+6-0-8+8-5-6-7+2+2+10-8-10-1-6-2-9+6+1+10-1-1-9-8+0+2+10-0+10+9-7+3+10+1-10+10-3+8+2-2+10-2+0+7+5-6-8-6+3+1-9+6+4-3+4-0+8-1-9+1-9-5-10+2-9-5-6-0+8+6-4-3+3-7+9+7-6+3-10-0+5-10+6+8-5-5+8+1+4-9+1-10-3-5-0+1+4+9-2+3-3-5+5-5-10+7-0+0+1-3+0+1-8+6-7-7+7-9-1+7+6-8-8+1+4-4-8+1-5-3-10-8-8-3-9+9-2-7+8+4+5+0+2+5-8+2-2+0-0-3+4-2+4-3-0-9-2-5+4+1+5+7+10+1+5+6+4-4+4+5+8-9-8-3+6+0-5+5-10-5-0-5+5-3-0-9+1+0+10+7+6+1+2-10-7-7+1+3+9+4+6+1-1+7+8-8-1-1-2-3-4+1+5+10+0+0+1-7-8-0-3+2+10+6+7+4-10+0-10+8-2-1-1-8-6-7+1+3-4-10+4-6-9-3-4+0-1-5-2-3+7+5+7+0+8-5-0-5+5+0-0-8+0-2-9+2+0+2-8-7-9-1-4-0-5-1-3+7+9+5+2+9-9-9+1+10+10+0-5-8+4+7+5-10-5-8-4+4+6+8-1-1-0-5+2+5-3-9-9-9+6+10+4+2-9-7+9-2+1-5-9-7+4-1-1+9-1+1-5+4-3-10+1-6-6-2-1+1-8-1-10+1-9+8+4-10+0-1-0+5+8-8-9-3+0+10+5-0+4-1-0+1-3-6+10-1-4-6-2-3-3+4+9-6-10+10-1+1-7-0-7+4+7+2+9-4-4+2-4-4-2-10-5-3-6+10+5-5-9+10-10-3-0-1-5+1-8+5+0+5-5+4+9+1-6-3-0-1-4-4+1+2-9+9-10+7+8-8+10-10+2+4+7+3+0-2+9-9+5+10-1+6+8+5-3+5+4+8+6-6+1+6-10+7+0-0-8+7-8-1-10+3+0-1-3+3-2-7+7+9+1+4+0+4-8+2+0-10-3+4+3-8-9-8+1+1+9+8-2+5-9-4-2+3+6+9-0+8-5+7-7-0+0+9+5-9-9+3-1+4+3-6-6-1-10-6+5-1-10-7-2+2-3-9+0+5+8+9+1+4-9+5-3-9-3-3+7+8-9-8+2+6-1+9-0-0+1+5+0-8-0+8+0-8-0+2+1+5-0-7-3-10-4-5-3-10-7-6+5-10-2+8+0-4+2-6+10-2+8-8+7-8-4-10+7-9-5+3+7-5-7+2+4+8-7+1+1+6-3+6+2+10-10+1-4-9+5+3+1+9-6+5-0-0+9-0+1-1-6-10+3+6+3+5-8-4-3+4+2-0+1+3-10+7-1+6-3+4+2-2-5-1+4+5-3+0-3+3-9+7-10-4-0+6-3+4+2-3-8+6+8+4-8+5-8-4-1+1+2-7-6+9-6+10-0+6+6+0+3-4-9+8-0+2+6+4-5-9-2+0+4-10+3+2+9+5+2+0+9-10-6-10-10+0+0+4+3-3-3+9-4-2+9+7+4+2-9-0+8+0+6+10+4+3+4-5+8+0-8+1-3-5+10-1+8-6+5-7+5+3-8-4-1-2+10-5+2-10-0+0-7+2+9+6-5-5-0+7-3-10+0-8+2-6+3+2-6-5+9-2+2+0+8+3+10-6-3+6+10+4-5+6+8+6-5+3+10+7-8-10+3+4-8-1-3+2+8-4-3+10+7+4-5-7+2-6-2+1+9+6+1-10+6+3-10-7+9-3+9+5-9+0-3-7-8-7-0+10-4+4+0+4-6+9+0-4+3-10+3+0+9-8-5+9+7+2+4+5+6+9-4-5+10-0-5+0-6+3-7+10+1+9+1-9+9+5-3-4+10+4-7+3-4+0+9-0+2+3-9-6+7-10+1-8-4-6+5+1-0-9+8-7+4-5-5+0+7-9-8+8+0-4+9+0+10+9-7-1+3+5-8-10-6+3+8-9-3+4-2+9+10-6-4+8+9-0+9+0-0-10+4-5+6+10-9+1-4+6+10-7-9+10-7+10+8-2+9+0-1+6-0+7-7+2+10+7-6-8-0+6-3-5+0-0+8-0-3+1+7+5-0-3+10+9-7+8+8-1+7-0-9+5+8-0+2-0-10+0+3+3-1-1-7+2-6-10+10+2+9+2-8+1-4-2+10+10-1-8-4-3+1-6-3+0-10+1+4+3+2-5-7-4+6+8+5-5-6-9-4-2-10-10-2-10-8-6-0-8+4+0+4-8+5-0-10-10-6-0-0+2+0+6+3-5+2+10+7-5-3-4+2+7-4-1-5+7-7-3-6-4+1-6-10-8+2-9+5+0+5+1+10+4-9-4-7+7-10-6-5+1-3-4-8-10-7-7-1+8+10-9-4-10+7+5-2+8-3+5+9+8-6-8-9+8+2-3-2+3+2-7+4-9-8+9-8-2-4+1-7-2+1-7+6+4+8-5+8+2-0-4+5+6-7-7+7+5+10+6-8+8+1-0-7+8+2+4-9-1-0-3-6-9-10-5-4+0+7-10+7-0-1+7-0-4-7-9-7-4-5-8-0-10+9-9+10-2+0-6+6-1+6+0-5+7+10+5-2-0+5-5-10+9+8-0-6+7+3-1-2-5-6+9-6-9+8+2+7-3-9-5+6-8-4-10+3+1-5-5-0-5-9+9-0+2+4-0-1+3-9+10+4-6+7-0+10-9-8-2+2-5+9+10-7+7+4+0+0+3+1+0-2-0-1-2+5-0+8+10+2-10-0-3-6+7+8-0-0+8+9+10-9-7+1-5+9+9-7+2+6+10-9-6+10-2+9+6-0+8+8+10+4+3-10-10+0-1+1-9+10+5+3+4+7+10-0-2-8-8+8+2-8+5+1-0+7+4-4-7-6-2-9+2-9+7-4-2-6-10+8+5+9-0+3+0-10+10+3+7+5-6+6+3+0+4+7+1+0+6-6-1+4-0+2-6+7-3-4+7-9+8-4-4+9-8+9-8+5-4+9-10-1-1-7-6-3+4-0-4-8+9-2-7+1+8-5-3+8+8+1+1+9+5+2-0-3-0-5+2-5-8+6-2+3-0+7-8+1+7+2+6-1-3-5-7+7-7-7-4-8+0-4-2+0-6+4-10+2-9-6+5+10+2-1-9-8+7+7-4+1+9+1-3+5+1-10+1+6-5+2-4-4+10-9+9-4-1-6+0+5+4+7+3-6-10+7-2-7-7+1+7+7-8+10-3+2-0-0+7+7-8-6+9+1-8-9-3+0+0-2-2+4+2-9+0-9-7+10+3-8-0+4+8-7-3-0-1+8+1-6+10+10+7+8+4-0+9+9+9+4-6-5+7-8+9-6+7-2+2+4-1+10+10+2-6+10+0+7+3+1-6-4+6-8-9+3+4+1+8+8+5-3-6+6-6+5+5+8+8+8+9+3-9+1-4-1-2-3+7-3-8-7-1-0+4+7+4-4+8+4+8+0-10+3-1+6-1-4+1+1-3-6-6-0-1+8+4-3-2-1+10+6+5-2-2-2+8+9+2+6+4-9+6-3+3+9+8+6+1-8+3+4+5+6+3-3+8-10+7-5+6+5+7+5-2+8+6-1-7+10+6+2-2+10-6-2-7+3-8+4+9-6-7+5-2-4-2-8-5+6-10-6+2+4-4+8-9-4+2-3-9-8-1-0-0-4-8-0+3+2-6-2+6-3+4+0+5+3-6-1+2+2+1+0-8+4+4+6+3+7-7+4-3+10+8+4-3-3-1+7+8-10+0+2+4+10-3+7+8+8-1-8-5-8+10+9-7+9+10+0+10-0-2+5+4+1-2-9-9+8-0-7+10+8-3-4+6-7-0-5+4-0-3+7+9+6+6+8-2-0-8+8+9-7+0-4+10-8+10+2-2-2+6-8-10-9-5-10-4-8-10-10-4+9-3+7+10+3-1+8+4+0+8+5+7-5+1+5-0+0-6+3+2+8+9+2-7-1-6-6-6-1+2+8-0+8-9+7+4+2-1-7-3-7-7+10-1-10+0+5+0-10-10-10-0+5+10+10+1-5-4+8+1+7+7-10-1+7-8-5+2-1+5+8+8+1+0-2+10-5-4+8-4+0+1-8-3+3+7+9-1-4-2-1-2-6-4-8-9+9+10-10+2+9-3+6-2-10+1-8+2+4-6-7-0+8+2-3-1+2-2-9-8+6+8+0+5-0+0-7+6+7+10-1-1-9-8+6-8-4+2+10+4+7+8+0-4-8+6-9-9-5+0+8-7-8+3-10+9-9-1-1+4-10-5+2+2-2+0-5-6+3+1-4+5-8-10-4";
    int exp = -794;
    
    printf("----------------------Test Case %s--------------------------\n",__FUNCTION__);
    printf("[input]:%s\n", buf);
    
    int res = calculate(buf);
    
    if (res == exp) {
        printf("[INFO]:Test Case %s Passed!\n",__FUNCTION__);
        return 0;
    }
    
    printf("[Error]:test Case %s Failed!\n[Out]:%d [Exp]:%d\n",__FUNCTION__, res, exp);
    return -1;
}
/* 主函数运行多个测试用例,当前包括9个 */
int my_main()
{
    int allTestCase = 0;
    int errorCnt = 0;
    int res = 0;
    
    
    res = test_1();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_2();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_3();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_4();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_5();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_6();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_7();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_8();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    res = test_9();
    allTestCase++;
    if(res != 0) {
        errorCnt++;
    }
    
    printf("[Info]:Test Case [Total]%d [Passed]%d [Failed]%d\n", allTestCase, allTestCase - errorCnt, errorCnt);
    return 0;
}

 

java编写的计算器,能实现加减乘除。 //***该梦幻计算器与Windows附件自带计算器的标准版功能、界面相仿***// //******但还不支持键盘操作,如有需要,下一次等级将满足你**********// import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.awt.Component.*; import java.awt.color.*; import java.text.DecimalFormat; //*****************************************************************************// //*****************************************************************************// public class Calculator implements ActionListener //导入动作监听接口 { //******************************// //*****设计计算器界面的单位*****// JFrame frame; //定义框架 JTextField textAnswer; //定义输出显示框 JPanel panel, panel1, panel2, panel3;//定义面板作为子容器,从而达到要求的界面效果 JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul,buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal,myCollege; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd) short key = -1, prekey = -1; //key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 boolean clear = false; String copy; //做复制用 JTextArea help; //帮助 JScrollPane scrollHelp; static boolean One =true; //******************// //*****构造函数开始*****// public Calculator() { clickable = true; answerd = 0; frame = new JFrame("梦幻计算器--SWE08008"); frame.setResizable(false);//不允许改变计算器的大小 frame.setLocation(250,150);//设置计算器的起始位置 frame.setBackground(Color.YELLOW); df = new DecimalFormat("0.##############"); //设置数据输出精度(对于double型值)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值