java经典算法_023给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package wzs.arithmetics;

import java.util.Scanner;

//题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
public class Test_wzs023
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        int number = input.nextInt();
        getDigits(number);
        getInverted(number);
    }

    /**
     * 得到一个数字的位数
     * @param number
     */
    static void getDigits(int number)
    {
        System.out.println(number + "的位数是:" + String.valueOf(number).length());
    }

    /**
     * 得到一个数字的逆序
     * @param number
     */
    static void getInverted(int number)
    {
        String numberString = Integer.toString(number);
        char[] numberChar = numberString.toCharArray();
        System.out.print(number + "的逆序是:");
        for (int i = numberChar.length - 1; i >= 0; i--)
        {
            System.out.print(numberChar[i]);
        }
    }
}


以下是几种使用 Python 实现对多于 5 正整数数并逆序打印各位数字的方法: ### 方法:使用取整和取余操作 ```python x = int(input('请输入一个数:\n')) a = x // 10000 b = x % 10000 // 1000 c = x % 1000 // 100 d = x % 100 // 10 e = x % 10 if a != 0: print('5 数:', e, d, c, b, a) elif b != 0: print('4 数:', e, d, c, b) elif c != 0: print('3 数:', e, d, c) elif d != 0: print('2 数:', e, d) elif e != 0: print('1 数:', e) ``` 这种方法通过取整和取余操作依次得到每数字,然后根据各位数字是否为 0 判断该数是几位数,并逆序各位数字 [^2]。 ### 方法:使用字符串操作 ```python num = input('你好呀!请输入一个多于正整数:') print('嗯,我看过了。它是一个' + str(len(num)) + '数。') if (len(num) == 1) or (len(num) <= 3 and num[0] == num[-1]) or (num[0] == num[-1] and num[1] == num[-2]): print('我本来想把它倒过来给你看看,但是它倒着写好玩儿,算了吧~') else: print('我把它倒过来了,现在它变成了', ''.join(list(reversed(num)))) ``` 此方法将输入数字作为字符串处理,通过字符串的长度确定数,同时考虑了些翻转后与原数字相同的情况 [^3]。 ### 方法三:使用循环和算法 ```python num = input('请输入一个超过 5 正整数>>>') num = int(num) # 变量 res 用于存储逆转之后的数字 res = 0 # 变量 count 用于存储数字数 count = 0 # 下面是这个算法的核心 while num != 0: # 用取余数的方式取当前的个数字, # 把结果中原来已有的部分乘以 10,加上刚取来的个数字。 # 这就相当于把原来的部分往前挪了下,给新来的个数腾一个地方 res = res * 10 + num % 10 # 用除以 10 并向下取整的方式把已经处理过的数去掉 num //= 10 # 每处理次,就给计数器 count 加 1,用这样的方式计算 num 是几位数 count += 1 print(f'这是一个{count}数,它的逆序数字是{res:0>{count}}') ``` 该方法使用循环和取余、取整操作,将数字处理,得到逆序数字数 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值