C++ 串联整数

C++ 串联整数,c++,C++,如何连接整数。比如说,我做了一个简单的程序如下: int concatenate(int i, int j) { } 我给了这个函数两个整数i将是1,j将是9。我如何连接数字以便获得123456789?尝试以下方法: int concatenate(int i, int j) { int result = 0; for (int x = i; x <= j; x++) { result = result * 10 + x; } retur

如何连接整数。比如说,我做了一个简单的程序如下:

int concatenate(int i, int j) {

}
我给了这个函数两个整数
i
将是1,
j
将是9。我如何连接数字以便获得
123456789

尝试以下方法:

int concatenate(int i, int j) {
    int result = 0;
    for (int x = i; x <= j; x++) {
       result = result * 10 + x; 
    }
    return result;
}
int串联(inti,intj){
int结果=0;
对于(intx=i;x另一种使用

#包括
int串联(int i,int j){
std::string result=“”;

对于(;i如果将
i
j
限制在域[0,9],则10x10查找表将是一个性能良好的解决方案:

long concatenate_lookup[10][10] = {
    {         0L,         1L,       12L,     123L,   1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
    {        10L,         1L,       12L,     123L,   1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
    {       210L,        21L,        2L,      23L,    234L,  2345L,  23456L,  234567L,  2345678L,  23456789L},
    {      3210L,       321L,       32L,       3L,     34L,   345L,   3456L,   34567L,   345678L,   3456789L},
    {     43210L,      4321L,      432L,      43L,      4L,    45L,    456L,    4567L,    45678L,    456789L},
    {    543210L,     54321L,     5432L,     543L,     54L,     5L,     56L,     567L,     5678L,     56789L},
    {   6543210L,    654321L,    65432L,    6543L,    654L,    65L,      6L,      67L,      678L,      6789L},
    {  76543210L,   7654321L,   765432L,   76543L,   7654L,   765L,     76L,       7L,       78L,       789L},
    { 876543210L,  87654321L,  8765432L,  876543L,  87654L,  8765L,    876L,      87L,        8L,        89L},
    {9876543210L, 987654321L, 98765432L, 9876543L, 987654L, 98765L,   9876L,     987L,       98L,         9L}
};

long concatenate(long i, long j ) {
    assert(i>=0 && i<=9 && j>=0 && j<=9);
    return concatenate_lookup[i][j];
} // end concatenate()
long concatenate_查找[10][10]={
{0L、1L、12L、123L、1234L、12345L、123456L、1234567L、12345678L、12345678L、123456789L},
{10L,1L,12L,123L,1234L,123456L,1234567L,12345678L,12345678L,12345678L},
{210L,21L,2L,23L,234L,2345L,23456L,234567L,2345678L,23456789L},
{3210L、321L、32L、3L、34L、345L、3456L、34567L、345678L、3456789L},
{43210L、4321L、432L、43L、4L、45L、456L、4567L、45678L、45678L、45678L},
{543210L、54321L、5432L、543L、54L、5L、56L、567L、5678L、56789L},
{6543210L、654321L、65432L、6543L、654L、65L、6L、67L、678L、6789L},
{76543210L、7654321L、765432L、76543L、7654L、765L、76L、7L、78L、789L},
{876543210L、87654321L、8765432L、876543L、87654L、8765L、876L、87L、8L、89L},
{9876543210L、987654321L、98765432L、9876543L、987654L、98765L、9876L、987L、98L、9L}
};
长连接(长i、长j){

断言(i>=0&&i=0&&jI正在考虑一个名为
count
的整数,然后作为计数的增量,它也会将该数字加到前面的数字上。因此,如果
i
为3,
j
为5,
count
也将等于
i
并添加一个数字,直到它达到
j
。如果ode>i
是3,
j
5
?@Pang,
345
只是在尝试一些我认为愚蠢的事情。:不可能的重复如果
i>j
会发生什么?请补充更多关于你问题的细节。
long concatenate_lookup[10][10] = {
    {         0L,         1L,       12L,     123L,   1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
    {        10L,         1L,       12L,     123L,   1234L, 12345L, 123456L, 1234567L, 12345678L, 123456789L},
    {       210L,        21L,        2L,      23L,    234L,  2345L,  23456L,  234567L,  2345678L,  23456789L},
    {      3210L,       321L,       32L,       3L,     34L,   345L,   3456L,   34567L,   345678L,   3456789L},
    {     43210L,      4321L,      432L,      43L,      4L,    45L,    456L,    4567L,    45678L,    456789L},
    {    543210L,     54321L,     5432L,     543L,     54L,     5L,     56L,     567L,     5678L,     56789L},
    {   6543210L,    654321L,    65432L,    6543L,    654L,    65L,      6L,      67L,      678L,      6789L},
    {  76543210L,   7654321L,   765432L,   76543L,   7654L,   765L,     76L,       7L,       78L,       789L},
    { 876543210L,  87654321L,  8765432L,  876543L,  87654L,  8765L,    876L,      87L,        8L,        89L},
    {9876543210L, 987654321L, 98765432L, 9876543L, 987654L, 98765L,   9876L,     987L,       98L,         9L}
};

long concatenate(long i, long j ) {
    assert(i>=0 && i<=9 && j>=0 && j<=9);
    return concatenate_lookup[i][j];
} // end concatenate()