• HDoj-1228-A + B


    A + B

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 12153    Accepted Submission(s): 7103


    Problem Description
    读入两个小于100的正整数A和B,计算A+B.
    须要注意的是:A和B的每一位数字由相应的英文单词给出.
     

    Input
    測试输入包括若干測试用例,每一个測试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔.当A和B同一时候为0时输入结束,对应的结果不要输出.
     

    Output
    对每一个測试用例输出1行,即A+B的值.
     

    Sample Input
    one + two = three four + five six = zero seven + eight nine = zero + zero =
     

    Sample Output
    3 90 96
    #include<stdio.h>
    #include<string.h>
    char s[10][10]={"zero","one","two","three","four","five","six","seven","eight","nine"};
    int main()
    {
    	int i,j,k,sum;
    	char str[100];
    	char s1[100];
    	while(gets(str))
    	{
    		sum=0;
    		k=0;
    		for(i=0;i<strlen(str);i++)
    		{
    			if(str[i]!=' ')
    			    s1[k++]=str[i];
    			else
    			{
    				s1[k]='';
    				k=0;
    			
    		    	if(strcmp(s1,"+")==0)
    			    {
    				    continue;
    			    }
    			
    			    else if(str[i+1]=='+' || str[i+1]=='=')
    			    {
    				    for(j=0;j<10;j++)
    				    {
    					  if(strcmp(s1,s[j])==0)
    					  {
    						sum+=j;
    						break;
    					  } 
    				    }
    			    }
    			    else
    			    {
    				    for(j=0;j<10;j++)
    				    {
    					    if(strcmp(s1,s[j])==0)
    					    {
    						   sum+=10*j;
    						   break;
    					    }
    				    }
    			    }
    		    }
    		}
    		if(sum==0)   return 0;
    		else         printf("%d
    ",sum);
    	}
    	return 0;
    }
    

    #include <iostream>
    #include <string>
    using namespace std;
    
    string num[10] = {"zero","one","two","three","four","five","six",
    				  "seven","eight","nine"};
    int strtoi(string str) {
    	for (int i = 0; i < 10; i++) {
    		if (str == num[i]) return i;
    	}
    }
    int main()
    {
    	string str;
    	while (1) {
    		int A = 0, B = 0;
    		while (cin >> str && str != "+") {
    			A = A*10 + strtoi(str);
    		}
    		while (cin >> str && str != "=") {
    			B = B*10 + strtoi(str);
    		}
    		if (!A && !B) break;
    		cout << A+B << endl;
    	}
    	return 0;
    }


  • 相关阅读:
    软件工程学习总结
    第13次作业--邮箱的正则表达式
    第12次作业--你的生日
    第11次作业--字符串处理
    第10次作业
    找回感觉的练习
    基础网络流学习笔记
    卷积定理的证明
    快速xxx变换相关
    主席树相关
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4094819.html
Copyright © 2020-2023  润新知