反置数
Posted coolcpp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反置数相关的知识,希望对你有一定的参考价值。
问题描述
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以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;
}
以上是关于反置数的主要内容,如果未能解决你的问题,请参考以下文章