逆序五进制

题目描述

编写一个程序,首先将一个十进制正整数逆序【需要去掉前导0】,然后转换成五进制正整数,最后输出该五进制正整数。

输入

每组测试数据的输入占一行,输入一个十进制正整数n。 (n<=100000)

输出

每组测试数据的输出占一行,输出转换后所得的五进制正整数。

样例输入 Copy

1000

样例输出 Copy

1

#include <iostream>
#define ll long long
using namespace std;
int fun(int n) 
{
    
    //倒序
    int sum = 0;
    while (n)
    {
    
    
        sum *= 10;
        sum += n % 10;
        n /= 10;
    }
    return sum;
}
int f(int n) {
    
    //转换成五进制
    int sum = 0, x = 1;
    while (n) {
    
    
        sum += n % 5 * x;
        n /= 5;
        x *= 10;
    }
    return sum;
}
int main() {
    
    
    int n;
    while (~scanf("%d", &n)) {
    
    
        while (n % 10 == 0)n /= 10;//去除前导0
        n = fun(n);
        cout << f(n) << endl;
    }
    return 0;
}

Guess you like

Origin blog.csdn.net/qq_52297656/article/details/115603364