ZOJ 2971 Give Me the Number 题目

ZOJ 2311 Inglish-Number Translator 题目

//两者题目差不多,细节有点点不一样,因为不是一起做的,所以处理方式有一点点不一样——还是前一个方式高端呀。

//ZOJ 2971 的AC代码(用了strstr函数):

#include<stdio.h>
#include<string.h>
char c[][] = {"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" , "and"};
char s[],sss[];
int main()
{
int ne , sum , flag , i,j , acc,len;
int tt;
scanf("%d",&tt);
getchar();
while(tt--)
{
gets(s);
ne = ;
sum = ;
flag = ;
acc = ;
len=strlen(s);
while (flag <len)
{
while (s[flag] == ' ') flag++;
// while (s[flag] == 'and') flag++;
for (i = ; i >= ; i--)
{
if (strstr(&s[flag] , c[i]) == &s[flag])//在s中找c[i]如果找到了,返回位置,没有找到返回-1,即false;&取位置
{
if (i <= ) acc += i;
else if (i <= ) acc += (i - ) * ;
else if (i == ) acc *= ;
else if (i == )
{
sum += acc * ;
acc = ;
}
else if (i == )
{
sum += acc * ;
acc = ;
}
else if (i == ) ne = -;
flag += strlen(c[i]);
break;
}
}
}
printf("%d\n" , (sum + acc)); }
return ;
}

字符串转化为数

//ZOJ 2311 的AC代码(这题要注意,防空行,就是一行什么都没输入,那么也什么都不要输出):

//模拟
//英文句子转阿拉伯数字。 #include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int main()
{
int len,i,j,k,num,sign,ans;
char str[],word[];
char w[][]={"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"};
while(gets(str))
{
if(strcmp(str,"")==)continue;//防空行
len=strlen(str);
str[len++]=' ';
num=;
j=;
sign=;
ans=;
for(i=;i<len;i++)
{
if(str[i]!=' ')
word[j++]=str[i];
else
{
word[j++]='\0';
for(k=;k<;k++)
{
if(strcmp(w[k],word)==)
{
if(k==)
sign=-;
else if(k>=&&k<=)
num+=k-;
else if(k>=&&k<=)
num+=(k-)*;
else if(k==)
num=num*;
else if(k==)//只要考虑1000
{
ans+=num*;
num=;
}
else if(k==)//和1000000就可以了
{
ans+=num*;
num=;
}
break;
}
}
j=;
}
}
ans+=num;
printf("%d\n",ans*sign);
}
return ;
}

ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)的更多相关文章

  1. [Javascript] Use Number() to convert to Number if possilbe

    Use map() and Number() to convert to number if possilbe or NaN. var str = ["1","1.23& ...

  2. Ugly Number,Ugly Number II,Super Ugly Number

    一.Ugly Number Write a program to check whether a given number is an ugly number. Ugly numbers are po ...

  3. leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes

    263. Ugly Number 注意:1.小于等于0都不属于丑数 2.while循环的判断不是num >= 0, 而是能被2 .3.5整除,即能被整除才去除这些数 class Solution ...

  4. leetcode 136. Single Number 、 137. Single Number II 、 260. Single Number III(剑指offer40 数组中只出现一次的数字)

    136. Single Number 除了一个数字,其他数字都出现了两遍. 用亦或解决,亦或的特点:1.相同的数结果为0,不同的数结果为1 2.与自己亦或为0,与0亦或为原来的数 class Solu ...

  5. java.sql.SQLException: Io 异常: Invalid number format for port number

    java.sql.SQLException: Io 异常: Invalid number format for port number   jdbc数据库链接配置没有写端口号 ​ 要检查jdbc的配置 ...

  6. hdu 6216 A Cubic number and A Cubic Number【数学题】

    hdu 6216 A Cubic number and A Cubic Number[数学] 题意:判断一个素数是否是两个立方数之差,就是验差分.. 题解:只有相邻两立方数之差才可能,,因为x^3-y ...

  7. 2017青岛网络赛1011 A Cubic number and A Cubic Number

    A Cubic number and A Cubic Number Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65535/3276 ...

  8. Io 异常: Invalid number format for port number

    报错信息: Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number    at oracle.jd ...

  9. a number of 和the number of用法

    a number of 和the number of用法 1.   A number of + 複數名詞 + 複數動詞           =some/或a lot of + 複數名詞 + 複數動詞 ...

随机推荐

  1. 微软TTS尝试系列之开篇杂谈(仅思路)

    第一次写博客,不知道如何下手,思路也乱,就先聊聊怎么进的园子吧,但愿不会浪费大家太多的宝贵时间>_<. 与博客园结缘应该是大三刚开始的时候.当时学校教务处想开发一个教务安排系统,为了省钱就 ...

  2. C语言--通用类型栈

    #include <stdio.h> #include <stdlib.h> #include <assert.h> #include <string.h&g ...

  3. viewPager+Handler+Timer简单实现广告轮播效果

    基本思想是在Avtivity中放一个ViewPager,然后通过监听去实现联动效果,代码理由详细的解释,我就不说了. MainActivity.java package com.example.adm ...

  4. spring使用JdbcDaoSupport中封装的JdbcTemplate进行query

    1.Dept package cn.hxex.springcore.jdbc; public class Dept { private Integer deptNo; private String d ...

  5. 黑客群体的露面说明互联网公司开始回馈IT行业了,

    揭开中国黑客群体的神秘面纱 年薪数百万 2015-04-26 09:59:45 15259 次阅读 14 次推荐 稿源:经济观察报 33 条评论   在网络世界有专属的代号,那里才是他们最习惯的“世界 ...

  6. OC中实例变量可见度、setter、getter方法和自定义初始化方法

    在对类和对象有一定了解之后,我们进一步探讨实例变量的可见度等相关知识 实例变量的可见度分为三种情况:public(共有),protected(受保护的,默认),private(私有的),具体的不同和特 ...

  7. UISegmentedControl swift

    // // ViewController.swift // UILabelTest // // Created by mac on 15/6/23. // Copyright (c) 2015年 fa ...

  8. DataTemplate和ControlTemplate联系与区别

    ---恢复内容开始--- 正如标题中的两个拼接的单词所说,DataTemplate就是数据显示的模板,而ControlTemplate是控件自身的模板.(个人理解,错误请指出,谢谢) 我们看这二者在两 ...

  9. InputStream和OutputStream与String之间的转换

    //1.字符串转inputstream String str="aaaaa"; InputStream in = new ByteArrayInputStream(str.getB ...

  10. 软件工程实践小队Scrum Meeting

    例会记录 时间:2013年10月20日星期日 Part 1 会议要点: 1. 小组讨论PM.Dev.Test的各自特点: 2. 小组讨论我们的项目网上教学问答系统的相关问题: 3.确定小组成员在第一轮 ...