UVA-537 Artificial Intelligence?

UVA-537 Artificial Intelligence?

题目大意:给定两个量根据UI=P算第三个量
解题思路:由题目意思,在等号的后面是数字,等号前面是IUP之一,所以三个变量,用两个,剩下的一个不用,读到等号,直接读数字,不用一个一个的把浮点数存下来在做。

#include<iostream>
#include<cstring>
#include<cstdio>
char str[10000];
int main() {
    int cc;
    int cases = 1;
    scanf("%d", &cc);
    getchar();
    while (cc--)
    {
        double A, U, P;
        A = U = P = 0;
        char ch;
        while ((ch = getchar())!='\n')
        {
            if (ch == 'I')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &A);
                    ch = getchar();
                    if (ch == 'm')A *= 0.001;
                    else if (ch == 'k')A *= 1000;
                    else if (ch == 'M')A *= 1000000; break;
                }
            }
            else if (ch == 'U')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &U);
                    ch = getchar();
                    if (ch == 'm')U *= 0.001;
                    else if (ch == 'k')U *= 1000;
                    else if (ch == 'M')U *= 1000000;
                    break;
                }
            }
            else if (ch == 'P')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &P);
                    ch = getchar();
                    if (ch == 'm')P *= 0.001;
                    else if (ch == 'k')P *= 1000;
                    else if (ch == 'M')P *= 1000000; break;
                }
            }

        }
        while ((ch = getchar()) != '\n')
        {
            if (ch == 'I')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &A);
                    ch = getchar();
                    if (ch == 'm')A *= 0.001;
                    else if (ch == 'k')A *= 1000;
                    else if (ch == 'M')A *= 1000000; break;
                }
            }
            else if (ch == 'U')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &U);
                    ch = getchar();
                    if (ch == 'm')U *= 0.001;
                    else if (ch == 'k')U *= 1000;
                    else if (ch == 'M')U *= 1000000; break;
                }
            }
            else if (ch == 'P')
            {
                if ((ch = getchar()) == '=')
                {
                    scanf("%lf", &P);
                    ch = getchar();
                    if (ch == 'm')P *= 0.001;
                    else if (ch == 'k')P *= 1000;
                    else if (ch == 'M')P *= 1000000; break;
                }
            }

        }
        gets(str);
        printf("Problem #%d\n",cases++);
        if(!P)
        printf("P=%.2lfW\n\n", A*U);
        else if(!A)
        printf("I=%.2lfA\n\n",P/U); 
        else if(!U)
        printf("U=%.2lfV\n\n",P/A);  
    }

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值