我想知道是否有人能告诉我如何在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