小白书训练-Artificial Intelligence?

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=478

题意:实在是太挫了,这个题目做了好久。TAT,题意很简单,就是用语言描述了电压U电流I功率P中的任意两个,求另一个。

字符串转化以及单位判断嘛,不难,一直在WA,只是因为头文件用的是cstdio,用了stdio.h就恢复正常了,真是的,简直了!!!!

代码:

#include <iostream>
#include <stdio.h>

using namespace std;

char s[1000];

char *getnum(char *p,double &ans)
{
    ans = 0;
    while(*p >= '0' && *p <= '9')
    {
        ans = *p - '0' + ans * 10;
        p++;
    }

    if(*p == '.')
    {
        p++;

        double quan = 0.1;
        while(*p >= '0' && *p <= '9')
        {
            ans = ans + quan * (*p - '0');
            quan *= 0.1;
            p++;
        }
    }

    return p;
}

int main()
{
    int N;

    cin >> N;
    cin.get();

    double u,i,ap;
    bool bu,bi,bp;
    int no = 1;
    while(N--)
    {
        cin.getline(s,1000);
        char *p = s;

        bu = 0;
        bi = 0;
        bp = 0;
        while(*p != '\0')
        {
            if(*p == '=')
            {
                if(*(p - 1) == 'u' || *(p - 1) == 'U')
                {
                    bu = 1;
                    p++;
                    if(*p >= '0' && *p <= '9')
                        p = getnum(p,u);

                    if(*p == 'm')
                        u *= 0.001;
                    if(*p == 'k')
                        u *= 1000;
                    if(*p == 'M')
                        u *= 1000000;
                }else if(*(p - 1) == 'i' || *(p - 1) == 'I')
                {
                    bi = 1;
                    p++;
                    if(*p >= '0' && *p <= '9')
                        p = getnum(p,i);

                    if(*p == 'm')
                        i *= 0.001;
                    if(*p == 'k')
                        i *= 1000;
                    if(*p == 'M')
                        i *= 1000000;
                }else if(*(p - 1) == 'p' || *(p - 1) == 'P')
                {
                    bp = 1;
                    p++;
                    if(*p >= '0' && *p <= '9')
                        p = getnum(p,ap);

                    if(*p == 'm')
                        ap *= 0.001;
                    if(*p == 'k')
                        ap *= 1000;
                    if(*p == 'M')
                        ap *= 1000000;
                }
            }
            p++;
        }

        cout << "Problem #" << no++ << endl;

        if(bu && bi)
            printf("P=%.2lfW\n",u * i);
        else if(bp && bi)
            printf("U=%.2lfV\n",ap / i);
        else if(bu && bp)
            printf("I=%.2lfA\n",ap / u);
        cout << endl;
    }
    return 0;
}

梦续代码:http://www.hypo.xyz

时间: 2024-10-06 14:09:12

小白书训练-Artificial Intelligence?的相关文章

小白书训练-Where&#39;s Waldorf?

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=951 题意:给了一个字母表,然后给了若干单词,问这些单词的首地址在字母表的什么地方. 因为可以八个顺序查找,比较麻烦,但不难,之前就做个,这次在做,改进就是用数组+循环控制八个方向,而不是写了好多各个方向的代码. 代码: #include<iostream> #inclu

小白书训练-Andy&#39;s First Dictionary

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1756 题意:给你一段文字,把所有的单词挑出来,然后排序打印. 首先是挑出来,用指针加数组轻轻松解决问题,然后排序,因为用数组不能快拍,便用了string,先转换为string然后一个快拍. 打印的时候不能打印重复的,因此,在打印的时候一个判断就好. 因为数组大小问题RE到死啊啊啊啊

小白书训练-Palindromes

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=342 题意镜像和回文串判断 代码: #include <iostream> #include <cstring> using namespace std; int main() { char s[30]; while(cin >> s) { //p

小白书训练-Automatic Editing

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1056 题意:替换单词,这个题不难,但写题解想想就是泪啊TAT,最大要注意的地方就是要替换彻底,就是替换完之后如果可以替换接着替换,其次,一定要一个单词一个单词的替换. 剩下的看代码吧: #include <iostream> #include <stdio.h&g

小白书训练-Automatic Poetry

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1302 题意:就是用<和>吧一句话截断为5部分,然后先打印s1s2s3s4s5,然后再输入一句话,然后在打印这句话(去除'.'),然后打印s4s3s2s5.其实就是个模拟,没有难度,就是英语有点问题,用指针分分钟的事情. 代码: #include <iostream

小白书训练-Decode the tape

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1819 题意:纸带打孔来保持二进制数,打孔便是1,否者为0.这个带子用ASCII保存了一个字符串,一个模拟.用数组使劲RE和WA,无语了.还是一个一个读入过掉的. 代码: #include <iostream> #include <cstdio> using

小白书训练-Excuses, Excuses!m

题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=350 题意:没读懂题让人WA到死啊啊啊!大体的意思很简单,就是给你n个单词,m个句子,问包含最多单词的句子是什么,要注意的是,找的是单词,不是字符串,说白了,就是被空格和标点符号明确分开的字符片段,不能直接上find><!!!需要对整个句子划分,然后对比查找. 代码: #

Ten Trending Applications of Artificial Intelligence

1 Ten Trending Applications of Artificial Intelligence https://hackernoon.com/artificial-intelligence-trends-to-watch-out-in-2019-b04q23dz5 2018年,基于人工智能和机器学习的工具.平台和应用大量涌现.这些技术工具不仅改变了互联网和软件行业,而且对制造业.医疗.农业和汽车等众多领域产生了巨大影响. 2019年和未来几年,人工智能相关和ML技术将继续增长.像I

(转) Artificial intelligence, revealed

Artificial intelligence, revealed Yann LeCunJoaquin Qui?onero Candela It's 8:00 am on a Tuesday morning. You've awoken, scanned the headlines on your phone, responded to an online post, ordered a holiday sweater for your mom, locked up the house, and