数字转成数组

本文介绍了如何将数字转换为数组,重点在于从高位到低位的存储方式,避免了常规方法中需要额外反转数组的步骤。这种方法通过直接计算数字的高位并存入数组,简化了数字到数组的转换过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在一位博客那看到一个求数字长度的好方法

今天在写例题的时候也是用上了

Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
//判断数字长度
String lon = num + "";
现在lon是字符串就可以用length求出长度
import java.util.Scanner;

public class eg06 {
    //数字转成数组
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        //判断数字长度
        String lon = num + "";
        //System.out.println(lon.length());
        int[] arr = new int[lon.length()];

        //将数字存入数组

        for (int i = 0; i < lon.length(); i++) {
            //num除的几个10
            int cf=1;
            for (int j = 0; j < lon.length()-i-1; j++) {
                cf*=10;
            }
            arr[i] = num/cf;
            num%=cf;

        }
        //输出数组
        for (int i=0 ; i <lon.length();i++) {
            System.out.print(arr[i]);
        }
    }
}

正常的是先将数字的最后一位依次存到数组当

arr = num%10;

num/=10;

 

不过存完后就会发现数组与原数字是颠倒过来的还得再进行一次颠倒,我这里直接将数字的最高位依次往下放入数组当中

for (int i = 0; i < lon.length(); i++) {
    //num除的几个10
    int cf=1;
    for (int j = 0; j < lon.length()-i-1; j++) {
        cf*=10;
    }
    arr[i] = num/cf;
    num%=cf;
}

这段代码就是实现从高位到到低位的一段语句

整个过程是草稿纸上推的可能有很多不足,不够简洁之类的但是只是目前我的一个思维水平.有什么不足,希望大佬指出.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值