标签:打印 std 一个 中间 while code iostream 整数 顺序
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。
输入只有一行,包括两个整数,中间用空格隔开。
输出只有一行,即相应的结果。
435 754
199
435 的反置数 = 5(10^2) + 3(10^1) + 4
写一个函数处理,分别调用即可。
#include <iostream>
#include <cmath>
int reserve(int num, int len)
{
int sum = 0;
for(int i = 0, j = len - 1; i < len; i++, j--)
{
int temp = num % (int)pow(10, i + 1) / pow(10, i);
sum += (temp * pow(10, j));
}
return sum;
}
int getlen(int num)
{
int len = 0;
while(num > 0)
{
num /= 10;
len++;
}
return len;
}
int main()
{
int n, m;
std::cin >> n >> m;
int sum = reserve(n, getlen(n)) + reserve(m, getlen(m));
std::cout << reserve(sum, getlen(sum));
return 0;
}
标签:打印 std 一个 中间 while code iostream 整数 顺序
原文地址:https://www.cnblogs.com/coolcpp/p/number-reserve.html