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#includeusing
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個元素...