给一个不多于五位数的数求位数

给一个不多于五位数的正整数,求出它是几位数,分别输出每一位数字,和按逆序输出各位数字

  1. 将正整数转字符串
  2. 获取字符串长度,这里就是他的位数
  3. 将字符串切割
  4. 数组反转
  5. 遍历输出数组的每个元素
#include<stdio.h>
int main(){
    int n,t,s=0;
    scanf("%d",&n);
    t=n;
    while(t!=0){
        printf("%d ",t%10);
        t/=10;
        s++;
    }
    printf("\n%d是%d位数",n,s); 
    return 0;
}

觉得有用的话采纳一下哈

因为题目指定参数是不超过5位的正整数,所以不做参数校验,以下是用java写的代码,自己翻译下吧。


import java.util.ArrayList;
import java.util.List;

public class NumberOfDigits {
  public static Integer[] handle(Integer number) {
    List<Integer> res = new ArrayList<>();
    while (number > 0) {
      res.add(number % 10);
      number /= 10;
    }
    return res.toArray(new Integer[0]);
  }

  public static void main(String[] args) {
    Integer number = 12345;
    Integer[] res = handle(number);
    int count = res.length;
    System.out.println(String.format("%d是%d位数", number, count));
    for (int i = 0; i < count; i++) {
      System.out.print(res[i]);
    }
    System.out.println();
    for (int i = count - 1; i >= 0; i--) {
      System.out.print(res[i]);
    }
  }
}