careercup 中等難度 17 7

2021-09-06 20:14:02 字數 989 閱讀 4972

17.7 給定乙個整數,列印該整數的英文描述(例如「one thousand,two hundred thirty four」)。

解法:舉個例子,在轉換19 323 984時,我們可以考慮分段處理,沒三位轉換一次,並在適當的地方插入「thousand」(千)和「million」(百萬)。也即,

convert(19 323 984)=convert(19)+ 「 million 」+convert(323)+「 thousand 」+convert(984);

c++實現**:

#include#include

using

namespace

std;

string digits[10]=;

string teens[10]=;

string tens[10]=;

string big[10]=;

string numtostring100(int

number)

number%=100

;

if(number>=11&&number<=19

)

else

if(number==10||number>=20

)

if(number>=1&&number<=9

)

return

str;

}string numtostring(int

number)

else

if(number<0

)

int count=0

;

string str="";

while(number>0

)

number/=1000

; count++;

}return

str;

}int

main()

careercup 中等難度 17 8

17.8 給定乙個整數陣列 有正數和負數 找出總和最大的連續序列,並返回總和。解法 就是求連續子串行的和最大,不過存在乙個問題 假設整個陣列都是負數,怎麼樣才是正確的行為呢?看看這個簡單的陣列,一下答案每個都可以說的通 3 假設子串行不能為空 0 子串行的長度為空 int min 視為錯誤的情況 我...

careercup 中等難度 17 12

17.12 設計乙個演算法,找出陣列中兩數之和為指定值的所有整數對。時間複雜度o n 的解法 我們可以用乙個雜湊表或陣列或bitmap 後兩者要求陣列中的整數非負 來儲存sum x的值,這樣我們就只需要遍歷陣列兩次即可找到和為指定值的整數對。這種方法需要o n 的輔助空間。如果直接用陣列或是bitm...

careercup 高等難度 18 2

18.2 編寫乙個方法,洗一副牌。要求做到完美洗牌,換言之,這幅牌52!種排列組合出現的概率相同。假設給定乙個完美的隨機發生器。解法 假定有個陣列,含有n個元素,類似如下 1 2 3 4 5 利用簡單構造法,我們不妨先問自己,假定有個方法shuffle 對n 1個元素有效,我們可以用它來打亂n個元素...