英語數字轉換器

2021-07-09 16:50:10 字數 2245 閱讀 7289

這是我在coursrea上做練習的時候碰到的一道題。原題如下:

1. 英語數字轉換器

注意: 總時間限制: 1000ms 記憶體限制: 65536kb

描述

在這個問題中,將用英語給你乙個或多個整數。你的任務是將這些數字轉換成整型表示。數字範圍從-999,999,999到999,999,999.下面是你的程式必須考慮的詳盡的英語單詞表:

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

輸入

輸入包括多個樣例,注意:

1.負數前面有詞negative

2.當能用thousand的時候,將不用hundred。例如1500將寫為」one thousand five hundred」,而不是」fifteen hundred」.

輸入將以乙個空行結束

輸出

輸出將是每乙個單獨一行,每乙個後面乙個換行符

樣例輸入

six

negative seven hundred twenty nine

one million one hundred one

eight hundred fourteen thousand twenty two

樣例輸出

6

-729

1000101

814022

解題思路:

首先,涉及到字元和字元所對應的數字。對於不同的數字,如hundred,thousand和million表示的是基數單位型別不同。由此建立了結構體,包含字元、字元所對應的數字和字元的基數大小。這樣存放單詞表的資料結構就確定了。

然後,輸入的是乙個字串,根據「 」不同位置,就能把每個單詞劃分出來,用string自帶的find函式就可以解決這個問題。根據單詞,在單詞表中就有對應的數字和基數型別。將找出來的數字和基數存分別存放在一維陣列中。

最後,根據基數型別不同,將陣列中的數字轉換成long型別的數字。

ps:**中的命名太隨意,求勿噴。

#include

#include

using

namespace

std;

struct strcha

};strcha stand[32] = ,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,,,,

,};long exchanges(string& inputs)

else

//在stand中尋找相匹配的字串

for (int i = 0; i < 32;i++)

}next = pos;

}//轉換成數字

int i = 0;

long nu = 0;

long res = 0;

while ( i < j)

else

continue;//nu = nu + resul; resul = 0;

case

2:if (nu<100)

else

case

3:if (nu < 1000)

else

case

4:if (resul != 0)nu = resul+nu;

nu *= shu[i]; i++; resul = 0; res = nu; nu = 0; break;

default:nu = nu + shu[i]; resul = 0; break;}}

if (res==0)

return nu*flag;

else

return(nu + res)*flag;

}int main()

return

0;}

藍橋杯 羅馬數字轉換器

古羅馬帝國開創了輝煌的人類文明,但他們的數字表示法的確有些繁瑣,尤其在表示大數的時候,現在看起來簡直不能忍受,所以在現代很少使用了。之所以這樣,不是因為發明表示法的人的智力的問題,而是因為乙個宗教的原因,當時的宗教禁止在數字中出現0的概念!羅馬數字的表示主要依賴以下幾個基本符號 i 1 v 5 x ...

注釋轉換器

讓我們來實現乙個注釋轉換器。它可以將擁有c風格 code 或c 風格 code 的注釋的 轉換為c 風格。剛開始看到這個題目是有點頭暈的,因為各種注釋的混合將使情況變得非常複雜,比如 1.一般情況 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配...

進製轉換器

專案分析 1.列印主選單。輸出主選單選項 小寫轉化為大寫 輸入的驗證 2.大小寫的轉化。輸入需要轉化的數 必須要小於基數 需驗證為字串型 引數 基數 返回值 乙個通過驗證過的數 3.進製的轉化 轉化的方式分兩種 一種是十進位制轉化為其他進製。另一種是其他進製轉化為十進位制 public classc...