小斐和他的计算器

时间: 1ms        内存:128M

描述:

最近小斐的手机手机坏掉了,看着其他小伙伴们一起用手机玩游戏,他只能拿着不知道从哪里找来的计算器玩了。

无聊的他开始数那些数字的笔画,他想知道每一个数字,横着竖着分别有多少笔画?(输入中只有0-9)


输入:

数据的第一行为一个数字T,表示数据的组数。

每组数据有一个数字(长度小于100)

输出:

每组数据需要你计算两个数据,分别是横着有几画,竖着有几画。

示例输入:

2
123
456

示例输出:

6 6
7 8

提示:

参考答案(内存最优[1092]):

#include <stdio.h>
int main()
{
    int t,i;
    int x,y;
    char str[105];
    scanf("%d",&t);
    while(t--)
    {
        x=0,y=0,i=0;
        scanf("%s",&str);
        while(str[i]!='\0')
        {
            switch(str[i])
            {
                case '0':
                    x=x+2;
                    y=y+4;
                    break;
                case '1':
                    y=y+2;
                    break;
                case '2':
                    x=x+3;
                    y=y+2;
                    break;
                case '3':
                    x=x+3;
                    y=y+2;
                    break;
                case '4':
                    x=x+1;
                    y=y+3;
                    break;
                case '5':
                    x=x+3;
                    y=y+2;
                    break;
                case '6':
                    x=x+3;
                    y=y+3;
                    break;
                case '7':
                    x=x+1;
                    y=y+2;
                    break;
                case '8':
                    x=x+3;
                    y=y+4;
                    break;
                case '9':
                    x=x+3;
                    y=y+3;
                    break;
                case '+':
                    x=x+1;
                    y=y+1;
                    break;
                case '-':
                    x=x+1;
                    break;
                case '=':
                    x=x+2;
                    break;
                default :
                    break;
            }
            i++;
        }
        printf("%d %d\n",x,y);
    }
    return 0;
}

参考答案(时间最优[0]):

#include <stdio.h>
int main()
{
    int t,i;
    int x,y;
    char str[105];
    scanf("%d",&t);
    while(t--)
    {
        x=0,y=0,i=0;
        scanf("%s",&str);
        while(str[i]!='\0')
        {
            switch(str[i])
            {
                case '0':
                    x=x+2;
                    y=y+4;
                    break;
                case '1':
                    y=y+2;
                    break;
                case '2':
                    x=x+3;
                    y=y+2;
                    break;
                case '3':
                    x=x+3;
                    y=y+2;
                    break;
                case '4':
                    x=x+1;
                    y=y+3;
                    break;
                case '5':
                    x=x+3;
                    y=y+2;
                    break;
                case '6':
                    x=x+3;
                    y=y+3;
                    break;
                case '7':
                    x=x+1;
                    y=y+2;
                    break;
                case '8':
                    x=x+3;
                    y=y+4;
                    break;
                case '9':
                    x=x+3;
                    y=y+3;
                    break;
                case '+':
                    x=x+1;
                    y=y+1;
                    break;
                case '-':
                    x=x+1;
                    break;
                case '=':
                    x=x+2;
                    break;
                default :
                    break;
            }
            i++;
        }
        printf("%d %d\n",x,y);
    }
    return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。