码迷,mamicode.com
首页 > 其他好文 > 详细

反置数

时间:2018-07-22 16:53:26      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:打印   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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!