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. 分享O'Reilly最新C语言指针数据

    1.推荐书名 Understanding.and.Using.C.Pointers.pdf 2. 本书目录 Table of Content Chapter 1. Introduction Chapt ...

  2. ubuntu crontab 定时备份postgres数据库并上传ftp服务器

    最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打 ...

  3. oracle-审计导数

    1.因审计需求,需要将MySQL.Oracle数据库中需要的表数据导入到SqlSERVER进行审计. 2.之前的方法:   A. oracle组将表dump下来,进行压缩,传送到oracle导数服务器 ...

  4. Android--监听ListView滚动到最底部

    监听ListView滚动到最底部使用 onScrollStateChanged(AbsListView view, int scrollState) 方法,代码大致如下: // 监听listview滚 ...

  5. Openstack:ice-house安装过程

    #apt-get install ntpdpkg-reconfigure tzdata --> Asia -->Shuanghai #apt-get install python-mysq ...

  6. Google工程师打造Remix OS系统 桌面版安卓下载

    三位前Google工程师打造的Remix OS系统终于来到了PC桌面上,现已可以下载尝鲜. Remix OS for PC基于Android-x86项目,由安卓5.1 Lollipop深度定制而来,不 ...

  7. centos 安装phantomjs

    sudo yum install gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel git clone git:// ...

  8. (转)Docker常用命令

    1. 查看docker信息(version.info) # 查看docker版本 $docker version # 显示docker系统的信息 $docker info 2. 对image的操作(s ...

  9. c/c++常用代码--使用libcurl下载文件

    #pragma once #include <stdio.h>#include <stdlib.h> #include <curl/curl.h> #ifdef   ...

  10. 一样的Android,不一样的学习

    这几年,Android开始慢慢流行起来,很多项目也开始涉及这部分内容,所以学习Android也就变的很有意义了. 学什么 学习Android应该学什么,很多人有不同的见解.一般程序员可能只是学习And ...