每日程式設計 20170315

2022-08-16 18:18:11 字數 1432 閱讀 6988

輸入描述:

輸入乙個long型整數

輸出描述:

輸出相應的英文寫法

輸入例子:

2356

輸出例子:

two thousand three hundred and fifty six

解答:主要在於分析,英文數字是每3位一組的,

1-3位是幾百幾十幾,

4-6位是幾百幾十幾k,

6-9位是幾百幾十幾million,

如果長度不超過9,用不上billion

所以使用乙個函式輸出幾百幾十幾,4-6加上thousand,6-9加上billion就好

11-19有對應的單詞,存起來就好。

#include #include 

#include

using

namespace

std;

vector

string>>dict,  //dict[0]有19個元素

};vector

answer;

void three0(int

n)

else

if (n > 99

)

}int

main()

three0(number);

if (number/1000

)

if (number / 1000

)

for (auto end = answer.end(); end !=answer.begin();)

cout

<}

上乙個版本錯誤百出,還在那洋洋得意,讓大神教訓了

這個版本目前還沒有試出來bug,我回頭再想想

1 #include 2 #include 

3 #include 4

using

namespace

std;

5 vectorstring>>dict,

9 };

10 vectoranswer;

11long

number;

12void three0(int

n) 21}22

else

2328}29

}30if (n > 99)31

35}36}

37int

main()

44if ((number% 1000) != 0)45

48 number /= 1000;49

if ((number% 1000) != 0)50

54if (number / 1000)55

60for (auto end = answer.end(); end !=answer.begin();)

6165 cout <66 }

每日程式設計 (三十)

題目描述 給定 pushed 和 popped 兩個序列,只有當它們可能是在最初空棧上進行的推入 push 和彈出 pop 操作序列的結果時,返回 true 否則,返回 false 示例 1 輸入 pushed 1,2,3,4,5 popped 4,5,3,2,1 輸出 true 解釋 我們可以按以...

每日程式設計 31

題目描述 有n個房間,現在i號房間裡的人需要被重新分配,分配的規則是這樣的 先讓i號房間裡的人全都出來,接下來按照 i 1,i 2,i 3,的順序依此往這些房間裡放乙個人,n號房間的的下乙個房間是1號房間,直到所有的人都被重新分配。現在告訴你分配完後每個房間的人數以及最後乙個人被分配的房間號x,你需...

每日程式設計(36)

題目描述 矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 ...