How to swap first and last digit in a number with C++

3 Answers

0 votes
#include <iostream>  
#include <sstream>  
 
int main() {  
    int n = 840192;  
     
    std::cout << n << "\n";  
     
    std::stringstream ss;  
    ss << n;  
     
    std::string s;  
    ss >> s;  
     
    char tmp = s[0];
    s[0] = s[s.size() - 1];
    s[s.size() - 1] = tmp;
     
    std::stringstream().swap(ss);
    ss << s;
     
    ss >> n;
       
    std::cout << n;  
     
    return 0;
}  
 
 
 
 
/*
run:
 
840192
240198
 
*/

 



answered Jan 14, 2021 by avibootz
0 votes
#include <iostream>  
#include <cmath>  
 
int main() {  
    int n = 8405961;  
    std::cout << "n: " << n << "\n";  
     
    int basenumber = pow(10, floor(log(n)/log(10))); 
    std::cout << "basenumber: " << basenumber << "\n";  
    
    int firstdigit = n / basenumber;
    std::cout << "firstdigit: " << firstdigit << "\n";  
    
    int lastdigit = n % 10; 
    std::cout << "lastdigit: " << lastdigit << "\n";  
    
    int numberwithoutfirstdigit  = ((n - firstdigit * basenumber) / 10) * 10 ;
    std::cout << "numberwithoutfirstdigit: " << numberwithoutfirstdigit << "\n";  
    
    n = firstdigit + numberwithoutfirstdigit + lastdigit * basenumber ;
       
    std::cout << "n: " << n << "\n";  
     
    return 0;
}  
 
 
 
 
/*
run:
 
n: 8405961
basenumber: 1000000
firstdigit: 8
lastdigigit: 1
numberwithoutfirstdigit: 405960
n: 1405968
 
*/

 



answered Jan 14, 2021 by avibootz
0 votes
#include <iostream>  
#include <cmath>  
  
int main() {  
    int n = 8405961, swapn;  
    std::cout << "n: " << n << "\n";  
 
    int lastdigit = n % 10;
    std::cout << "lastdigit: " << lastdigit << "\n";  
     
    int totaldigits_minusone = (int)log10(n); 
    std::cout << "totaldigits_minusone: " << totaldigits_minusone << "\n";  
     
    int firstdigit = (int)(n / pow(10, totaldigits_minusone));
    std::cout << "firstdigit: " << firstdigit << "\n";  
 
    swapn = lastdigit;
    std::cout << "swapn: " << swapn << "\n";  
    swapn *= (int)pow(10, totaldigits_minusone);
    std::cout << "swapn: " << swapn << "\n";  
    swapn += n % ((int)pow(10, totaldigits_minusone));
    std::cout << "swapn: " << swapn << "\n";  
    swapn -= lastdigit;
    std::cout << "swapn: " << swapn << "\n";  
    swapn += firstdigit;
    std::cout << "swapn: " << swapn << "\n";  
 
    std::cout << "swapn: " << swapn << "\n";  
      
    return 0;
}  
  
  
  
  
/*
run:
  
n: 8405961
lastdigit: 1
totaldigits_minusone: 6
firstdigit: 8
swapn: 1
swapn: 1000000
swapn: 1405961
swapn: 1405960
swapn: 1405968
swapn: 1405968
  
*/

 



answered Jan 14, 2021 by avibootz
edited Jan 15, 2021 by avibootz

Related questions

1 answer 196 views
1 answer 184 views
1 answer 166 views
1 answer 159 views
2 answers 235 views
1 answer 218 views
1 answer 139 views
...