zoukankan      html  css  js  c++  java
  • HDU 1228(字符串处理)

    题意是将所给算式求出结果。

    用的方法非常麻烦,开始没考虑到零也需要处理,以为遇上零直接跳过即可,知道发现零可以占位,比如 one zero 值为 10 而不是 1……

    代码如下:

      1 #include <bits/stdc++.h>
      2 using namespace std;
      3 int main()
      4 {
      5     char s1[10],s2[10];
      6     int a1,a2;
      7     while(1)
      8     {
      9         a1 = a2 = 0;
     10         while(scanf("%s",s1) && strcmp(s1,"+"))
     11         {
     12                 if(strcmp(s1,"one")==0)
     13                 {
     14                     a1 = a1*10+1;
     15                 }
     16                 else if(strcmp(s1,"two")==0)
     17                 {
     18                     a1 = a1*10+2;
     19                 }
     20                 else if(strcmp(s1,"three")==0)
     21                 {
     22                     a1 = a1*10+3;
     23                 }
     24                 else if(strcmp(s1,"four")==0)
     25                 {
     26                     a1 = a1*10+4;
     27                 }
     28                 else if(strcmp(s1,"five")==0)
     29                 {
     30                     a1 = a1*10+5;
     31                 }
     32                 else if(strcmp(s1,"six")==0)
     33                 {
     34                     a1 = a1*10+6;
     35                 }
     36                 else if(strcmp(s1,"seven")==0)
     37                 {
     38                     a1 = a1*10+7;
     39                 }
     40                 else if(strcmp(s1,"eight")==0)
     41                 {
     42                     a1 = a1*10+8;
     43                 }
     44                 else if(strcmp(s1,"nine")==0)
     45                 {
     46                     a1 = a1*10+9;
     47                 }
     48                 else{
     49                     a1 = a1*10;
     50                 }
     51         }
     52         while(scanf("%s",s2) && strcmp(s2,"="))
     53         {
     54                 if(strcmp(s2,"one")==0)
     55                 {
     56                     a2 = a2*10+1;
     57                 }
     58                 else if(strcmp(s2,"two")==0)
     59                 {
     60                     a2 = a2*10+2;
     61                 }
     62                 else if(strcmp(s2,"three")==0)
     63                 {
     64                     a2 = a2*10+3;
     65                 }
     66                 else if(strcmp(s2,"four")==0)
     67                 {
     68                     a2 = a2*10+4;
     69                 }
     70                 else if(strcmp(s2,"five")==0)
     71                 {
     72                     a2 = a2*10+5;
     73                 }
     74                 else if(strcmp(s2,"six")==0)
     75                 {
     76                     a2 = a2*10+6;
     77                 }
     78                 else if(strcmp(s2,"seven")==0)
     79                 {
     80                     a2 = a2*10+7;
     81                 }
     82                 else if(strcmp(s2,"eight")==0)
     83                 {
     84                     a2 = a2*10+8;
     85                 }
     86                 else if(strcmp(s2,"nine")==0)
     87                 {
     88                     a2 = a2*10+9;
     89                 }
     90                 else
     91                 {
     92                     a2 = a2*10;
     93                 }
     94         }
     95         if(a1==0 && a2==0)
     96             break;
     97 //        printf("a1:%d  a2:%d
    ",a1,a2);
     98         printf("%d
    ",a1+a2);
     99     }
    100     return 0;
    101 }
    View Code
  • 相关阅读:
    [算法分析]计数排序
    [置顶] 基于stm32f103zet6之UC/OS_II的学习1(初步移植OS点灯大法)
    IOS开发(59)之Block Object的调用
    【译】测试员,敢问路在何方?来自微软工程师
    各种字符串hash
    hdu 2579 BFS
    qq相册
    程序人生之我们的故事:十年如歌(9)
    关联模型和无限极分类
    十大技巧破解电话面试
  • 原文地址:https://www.cnblogs.com/Taskr212/p/10400644.html
Copyright © 2011-2022 走看看