如何在C++; 我想知道有没有人能告诉我如何用C++来追加一个整数(另一个整数)。基本上,如果我有一个int,它的值是67,我如何将它与数字4相加,使整数现在是674?提前谢谢

如何在C++; 我想知道有没有人能告诉我如何用C++来追加一个整数(另一个整数)。基本上,如果我有一个int,它的值是67,我如何将它与数字4相加,使整数现在是674?提前谢谢,c++,integer,append,C++,Integer,Append,将第一个数字乘以第二个数字的十次方,然后将另一个数字相加 int appended = std::stoi(std::to_string(i1) + std::to_string(i2)); // error checking left as an exercise 示例: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));

将第一个数字乘以第二个数字的十次方,然后将另一个数字相加

int appended = std::stoi(std::to_string(i1) + std::to_string(i2));
// error checking left as an exercise
示例: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;
75*100=7500
7500+34=7534
int i1=75;
int i2=34;
int dn=ceil(log10(i2+0.001))//0.001表示精确的10,精确的100。。。

int i3=i1*ceil(功率(10,dn)) 计算现有数字的位数,乘以其十次方,再加上第二个数字。

#include
#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;
}
#包括 int-appendDigital(int-base,int-append){ std::string sBase=std::to_string(base); std::string sAppend=std::to_string(追加); std::string result=sBase+sAppend; 返回标准::stoi(结果); } int main(){ INTA=67; int b=4; int c=数字(a,b); 标准::cout
重构以减少代码重复是留给读者的一个练习。

这里有一个更重要的练习:

int append_digits(int i1, int i2) {
    int i2_copy = i2;
    while (i2_copy) {
        i1 *= 10;
        i2_copy /= 10;
    }
    return i1 + i2;
}

这避免了浮点数学和字符串转换。

我应该用数字/变量替换什么?你可以通过
ceil(log10(i1))
小心
log10(10)
正好是1,所以结果可能不正确。也许
ceil(log10(i1+.1))
int append_digits(int i1, int i2) {
    int i2_copy = i2;
    while (i2_copy) {
        i1 *= 10;
        i2_copy /= 10;
    }
    return i1 + i2;
}