程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> hdoj 1228 A + B()map容器

hdoj 1228 A + B()map容器

編輯:C++入門知識

hdoj 1228 A + B()map容器


A + B

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

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

Source 浙大計算機研究生復試上機考試-2005年
心得 第一次用map感覺還挺好。。。大笑 代碼如下:
#include
#include
#include
#include
using namespace std;
int main()
{
	int a,b;
	string str2,str1;
	mapm;//此處的map函數可以理解為一個一對一的key,value對也就是鍵值對,通常用途與快速尋找一個key對應的value是多少
	m["zero"]=0;
	m["one"]=1;
	m["two"]=2;
	m["three"]=3;
	m["four"]=4;
	m["five"]=5;
	m["six"]=6;
	m["seven"]=7;
	m["eight"]=8;
	m["nine"]=9;
	while(a+b)
	{
		a=0,b=0;
		while(cin>>str1&&str1!="+")
		a=a*10+m[str1];
		while(cin>>str2&&str2!="=")//雙引號
		b=b*10+m[str2];
		if(a+b)
		printf("%d\n",a+b);
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved