poj2121--暴力解法

#include<iostream>
#include<string>
using namespace std;
string sum[50]={"negative","zero","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen"
,"eighteen","nineteen","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety","hundred","thousand","million"};
int main(){
    string s;
    int num=0,res=0;
    while(cin>>s){
        if(s==sum[0])
        cout<<"-";
        else if(s==sum[1])
        num+=0;
        else if(s==sum[2])
        num+=1;
        else if(s==sum[3])
        num+=2;
        else if(s==sum[4])
        num+=3;
        else if(s==sum[5])
        num+=4;
        else if(s==sum[6])
        num+=5;
        else if(s==sum[7])
        num+=6;
        else if(s==sum[8])
        num+=7;
        else if(s==sum[9])
        num+=8;
        else if(s==sum[10])
        num+=9;
        else if(s==sum[11])
        num+=10;
        else if(s==sum[12])
        num+=11;
        else if(s==sum[13])
        num+=12;
        else if(s==sum[14])
        num+=13;
        else if(s==sum[15])
        num+=14;
        else if(s==sum[16])
        num+=15;
        else if(s==sum[17])
        num+=16;
        else if(s==sum[18])
        num+=17;
        else if(s==sum[19])
        num+=18;
        else if(s==sum[20])
        num+=19;
        else if(s==sum[21])
        num+=20;
        else if(s==sum[22])
        num+=30;
        else if(s==sum[23])
        num+=40;
        else if(s==sum[24])
        num+=50;
        else if(s==sum[25])
        num+=60;
        else if(s==sum[26])
        num+=70;
        else if(s==sum[27])
        num+=80;
        else if(s==sum[28])
        num+=90;
        else if(s==sum[29]){
            num*=100;
        }
        else if(s==sum[30]){//当为1000之后,原数应加上num*1000,而非直接乘,1000000也是一样
            res+=num*1000;
            num=0;
        }
        else if(s==sum[31]){
            res+=num*1000000;
            num=0;
        }
        char biao=getchar();
        //当系统读到回车时,输出
        if(biao==‘\n‘){
            cout<<num+res<<endl;
            num=0;res=0;
        }
    }
    return 0;
}
时间: 2024-10-10 17:09:46

poj2121--暴力解法的相关文章

poj 2907 Collecting Beepers 邮递员问题暴力解法

题意: 给起点和n个点,求从起点出发经过这n个点每个点至少一次再回到起点的最短路. 分析: 类似邮递员问题,直接用STL枚举访问顺序暴力解决. 代码: //poj 2907 //sep9 #include <iostream> #include <algorithm> using namespace std; int x[16],y[16]; int d[16][16]; int a[16]; int n; int main() { int cases; scanf("%

最长公共子串_暴力解法(不会正解)

最长公共子串 lcs.cpp/.in/.out 计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符不区分大小写,这里的最大公共子串要求的字串是连续的. 输入: 两行,每行一个字符串,字符串长度<=1000. 输出: 输出一个整数,表示公共子串的长度. 样例输入: asdfas werasdfaswer 样例输出: 6 下面上代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 char o[

二叉树的后序遍历(暴力版) 小白菜oj 1034

给出二叉树的前序遍历和中序遍历,求二叉树的后序遍历-- 作为一个搜索蒟蒻,我真的没有办法很和谐的A掉,但估计过几天就会写有关这个题的和谐的解法--但只是估计-- 下面讲述我的超暴力解法-- 首先,先由前序遍历得到一个父亲节点,然后再由中序遍历得到这个父亲节点的左子树和右子树中的元素(中序遍历中,该点的左边的所有点,都在它的左子树,右边的都在它的右子树,子树中的根节点是在这些节点的前序遍历中排名最靠前的),然后递归建树,之后在递归求后序遍历即可. 但这个方法有两个比较--&¥--&的问题:1

HDOJ 1394 Minimum Inversion Number 求循环串的最小逆序数(暴力&amp;&amp;线段树)

Minimum Inversion Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 14879    Accepted Submission(s): 9082 Problem Description The inversion number of a given number sequence a1, a2, ..., a

1003蛮力解法

   /**      * 5 -1 -1 -1 -1 -1      * 7 0 6 -1 1 -6 7 -5      * 5 6 -1 5 4 -7      * G和最大的子序列,输出最大和还有起始与截止下标(暴力解法,超时了Time Limit Exceeded)      * @param args the command line arguments      */     public static void main(String[] args) {         int N

Codeforces 993A. Two Squares(暴力求解)

解题思路(暴力解法) 平行于x轴的正方形和与x轴成45度倾斜的正方形相交的点中必定有整数点.即若两正方形相交,必定存在整数i,j,使(i,j)同时属于两个正方形. 我们把两个正方形中的整数点都找出来,看一下有没有重复点,就可以判断是否相交. 代码 #include <bits/stdc++.h> using namespace std; typedef long long ll; struct point{ int x;int y; }sq[4],sp[4]; bool cmp(point a

LeetCode算法题-Valid Perfect Square(Java实现-四种解法)

这是悦乐书的第209次更新,第221篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第77题(顺位题号是367).给定正整数num,写一个函数,如果num是一个完美的正方形,则返回True,否则返回False.例如: 输入:16 输出:true 输入:14 输出:false 注意:不要使用任何内置库函数,例如sqrt. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 暴力解法

矩阵乘法的Strassen算法详解

题目描述 请编程实现矩阵乘法,并考虑当矩阵规模较大时的优化方法. 思路分析 根据wikipedia上的介绍:两个矩阵的乘法仅当第一个矩阵B的列数和另一个矩阵A的行数相等时才能定义.如A是m×n矩阵和B是n×p矩阵,它们的乘积AB是一个m×p矩阵,它的一个元素其中 1 ≤ i ≤ m, 1 ≤ j ≤ p. 值得一提的是,矩阵乘法满足结合律和分配率,但并不满足交换律,如下图所示的这个例子,两个矩阵交换相乘后,结果变了: 下面咱们来具体解决这个矩阵相乘的问题. 解法一.暴力解法 其实,通过前面的分析

找出矩阵中含有0最多的一行(find the longest row of zero)

对于一个n*n的矩阵,其中只包含有0,1两种元素且,所有的0都在1之前,请找出矩阵中0最多的一行.(Given an N-by-N matrix of 0s and 1s such that in each row no 0 comes before a 1, find the row with the most 0s in O(N) time.) 初看这题,想到的算法就是每一行都设置一个计数器,记录每行的0的个数,然后找出最大值即可(暴力解法). 算法实现: int* find_the_lon

leetcode-1 Two Sum 找到数组中两数字和为指定和

 问题描述:在一个数组(无序)中快速找出两个数字,使得两个数字之和等于一个给定的值.假设数组中肯定存在至少一组满足要求. <剑指Offer>P214(有序数组) <编程之美>P176 Que:Given an array of integers, find twonumbers such that they add up to a specific target number. The function twoSum should return indices ofthe tw