我想知道是否有人能告訴我如何在C++中追加一個整數(與另一個整數)。基本上,如果我有一個int值67,我將如何將它附加到數字4,現在整數是674?提前致謝!如何在C++中追加整數(使用整數)
回答
將第一乘以10乘以第二的數位數的乘方並加上另一乘數。
實施例:63和5
63*10=630
630+5 =635
實施例:75和34
75*100=7500
7500+34=7534
int i1=75;
int i2=34;
int dn=ceil(log10(i2+0.001)); //0.001 is for exact 10, exact 100, ...
int i3=i1*ceil(pow(10,dn)); <---- because pow would give 99.999999(for some optimization modes)
i3+=i2;
編輯:字符串版本需要2 INT爲str轉換(這是慢)和1個字符串連接(這是不快)和1 str到int轉換(這是慢)。上面的轉換需要2個增加,1個對數,2個上限,1個功率,1個乘法,所有這些都可以在cpu中完成,而不需要接觸主存儲器來爲子步驟獲取/設置數據,這肯定比字符串版本少。如果通過編譯器設計將3-4個字符串存儲在sse寄存器中,則兩者都會對性能進行競爭。因爲當一個人忙於計算「電源」功能時,其他人會忙於從sse中提取字符串,並逐個放入必要的寄存器,並通過開始加法和乘法來構建另一個寄存器。 Power(10,x)功能可以交易10 * 10 * 10 .... x次,純數學版本再次變得更快。
如果您需要可讀性,eq-的答案是最好的。
int appended = std::stoi(std::to_string(i1) + std::to_string(i2));
// error checking left as an exercise
我該用數字/變量替換什麼? – Toby
計算現有數字的數字,乘以其十次方,然後加上第二個數字。
#include <iostream>
#include <string>
int appendDigit(int base, int append) {
std::string sBase = std::to_string(base);
std::string sAppend = std::to_string(append);
std::string result = sBase + sAppend;
return std::stoi(result);
}
int main() {
int a = 67;
int b = 4;
int c = appendDigit(a,b);
std::cout << c;
}
+1的詳細程度。 – Tibor
int append_digits(int i1, int i2) {
int result = 0;
while (i1) {
result *= 10;
result += i1 % 10;
i1 /= 10;
}
while (i2) {
result *= 10;
result += i2 % 10;
i2 /= 10;
}
int final_result = 0;
while (result) {
final_result *= 10;
final_result += result % 10;
result /= 10;
}
return final_result;
}
重構,以減少重複代碼就留給讀者自己練習。
這裏有一個更嚴重的一個:
int append_digits(int i1, int i2) {
int i2_copy = i2;
while (i2_copy) {
i1 *= 10;
i2_copy /= 10;
}
return i1 + i2;
}
這避免了浮點運算和字符串轉換。
- 1. C++如何追加炭和整數串
- 2. 追加整數
- 3. 哈斯克爾如何追加像 「.. ++整數++ ......」 整數
- 4. 追加整數目標C變量名
- 5. 如何在c中添加另一個整數前的整數
- 6. 我該如何追加海拔整數
- 7. 解析整數沒有在C中追加char 0
- 8. 在C#中「追加」整數的好方法?
- 9. jQuery找到整數並追加小數
- 10. 如何在長整數中追加字符?
- 11. 用整數在C#中增加名稱
- 12. 在C中打印整數char整數
- 13. 如何整數在C#
- 14. 如何在java中整數整數
- 15. 如何在Java中將*整數*整數?
- 16. 如何在GUI中將整數添加到整數ArrayList中?
- 17. C#在其他類中使用整數
- 18. 在C++中使用負整數Modulo
- 19. 使用整數與整數
- 20. 如何在Go中使用大整數?
- 21. 如何僅在Python中使用整數?
- 22. 爲整數變量追加時間戳
- 23. 最快的StringBuilder整數的追加
- 24. 追加兩個整數列出「..」的Python
- 25. 使用按位運算在整數值中追加任意數字
- 26. 如何在C中反轉整數?
- 27. 如何在C++中清除()整數
- 28. 如何在C++中只接受整數
- 29. 如何在C++中移位整數值
- 30. 整數如何在C++中相乘?
在哪個基地? – Tibor