----------------------------------------------------------------------------------------------

2019年10月4日修改:

原文程序仅适用于5位数整数的数位提取,有很大的局限性。特此修正。

---------------------------------------------------------------------------------------------

修正后的代码:

//JHTP exercise, chapter 2,Separating the Digits in an Integer
//2019年10月4日,参考了浙江大学中国大学MOOC《程序设计入门——C语言》课程案例
//By pandenghuang@163.comimport java.util.Scanner;public class DigitsSeparation {public static void main(String[] args){Scanner input = new Scanner(System.in);long number; // 用户输入的数字do {System.out.print("Enter an integer: "); // 提示用户输入 number = input.nextLong(); // 读取用户输入 if(number == -1){System.out.print("已退出程序。");break;      }long temp;       //临时变量long mask = 1;   //通过求余运算提取整数的各个数位上的数值时,所用到的除数int digits = 1; //输入的整数的位数temp = number;//求输入的整数的位数(digits)及提取最高位时用到的除数(mask)while (temp > 9) {temp /= 10;mask *= 10;digits++;}//从最高位依次提取各数位的数值do {long d = number/mask;System.out.printf("%d",d);//最后一位之后无需输出空格if (mask >9) {System.out.printf(" ");}//最后一位输出完成后,换行elseSystem.out.println();number %= mask;   //截取最高位以外的数字(被除数降一个数量级)mask /= 10;       //除数降一个数量级} while (mask >0);     System.out.printf("共%d位\n", digits);//打印位数} while (number != -1);input.close();     }
}

修正后的运行结果(适用于以下的正整数):

Enter an integer: 123456789123456789

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9

共18位

Enter an integer: 9223372036854775807

9 2 2 3 3 7 2 0 3 6 8 5 4 7 7 5 8 0 7

共19位

Enter an integer: 0

0

共1位

Enter an integer: 70

7 0

共2位

修正前的代码(有很大局限性):

使用除法和取余运算,可提取整数的各个位数:

//JHTP exercise, chapter 2,Separating the Digits in an Integer
//By pandenghuang@163.com
package example;import java.util.Scanner;public class DigitExtraction {public static void main(String[] args){Scanner input = new Scanner(System.in);int N1; // 用户输入的数字System.out.print("Enter first number N1: "); // 提示用户输入 N1 = input.nextInt(); // 读取用户输入 int First =N1/10000;         //获取万位数int Second=N1%10000/1000; //获取千位数int Third=N1%1000/100;    //获取百位数int Fourth=N1%100/10;       //获取十位数int Fifth=N1%10;            //获取个位数System.out.printf("%d %d %d %d %d",First,Second,Third,Fourth,Fifth);      }
}

提取整数的各个位数 (Separating the Digits in an Integer)相关推荐

  1. 第六章第二题(求一个整数各位数字之和)(Sum the digits in an integer)

    *6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234) ...

  2. 编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和

    编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和 目录 题目描述 代码实现 题目描述 求出一个整数中各位数上所包含全部质数之和 一家电子商务公司计划在圣诞节给客户提供特别折扣,他们 ...

  3. 控制台输入一个整数,取该整数的各位数,判断其是否能被该整数整除,能则返回true,不能则返回false

    这是出自美国中学的一道编程题,个人觉得对我这种初学者而言挺有意思的,就做了一下,这道题目的难点在于找出所输入整数的各位数 package 练习题; import java.util.Scanner;p ...

  4. 输入一个整数求其位数和各个位数之和

    说一下"输入一个整数求其位数和各个位数之和", 举个例子输入1223,得到1223的位数是4,各个位数之和是12. 对于这个题目我的做法是: #include<stdio.h ...

  5. android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)

    写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码: package allone.verbank.apad.client.component; import android.t ...

  6. 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。

    本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 函数接口的定义 int Count_Digit ( const int N, cons ...

  7. 统计个位数字 (本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3)

    5.本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 实现代码: int Count_Digit ( const int N, cons ...

  8. 用java将输入的整数逆序输出_输入一个整数判断这个整数是几位数,并把这个整数逆序输出! | 学步园...

    import java.util.Scanner; /** * * 问题:输入一个整数判断这个整数是几位数,并把这个整数逆序输出! * * @author Administrator * * 程序如下 ...

  9. (C语言)从键盘输入输入一个不大于5位的整数,判断位数,并逆序输出

    @[TOC]( (C语言)从键盘输入输入一个不大于5位的整数,判断位数,并逆序输出 #include <stdio.h> void main() {int n,a,b,c,d,e,m;pr ...

  10. 接受一个整数,输出这个整数是几位数

    import java.util.Scanner;/*** @author LLJ* @time 2020-5-5 下午5:19:52* @Description 接受一个整数,输出这个整数是几位数* ...

最新文章

  1. python的类型化_显式类型化的Python版本?
  2. 黄连解毒汤合大黄甘草方治疗口腔扁平苔藓
  3. 比特币现金的第四次战役
  4. catia中sew的用法_CATIA超级副本(PowerCopy)使用方法总结 | 坐倚北风
  5. python新手入门英文词汇笔记(1-1)_Python新手入门英文词汇(1-1)
  6. 模拟网页行为之工具篇
  7. .net 获取xml里面的值_Java-XML技术
  8. Linux基础——搭建自己的云计算, 多电脑共享你云端文件
  9. java 纳秒 毫秒,秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
  10. Html + JQuery 点击图片弹出视频加蒙版,全局居中并且可关闭
  11. 蓝牙耳机播放音频无声问题的解决方案
  12. 一文看懂Android.bp和Androd.mk区别以及宏变量对应关系
  13. AU入门音频编辑基本认识
  14. WIFI系列协议--802.11s--Mesh网络
  15. java 视频边下边播,VideoViewDemo android 播放器,支持边下边播 238万源代码下载- www.pudn.com...
  16. 云安全软件市场现状研究分析报告 -
  17. Android开发技巧——Camera拍照功能
  18. ffmpeg mp3转pcm指令
  19. ABAQUS如何输出应力应变曲线(XY曲线)
  20. ACL2022 事件抽取

热门文章

  1. UE4材质(六):不透明度Opacity——玻璃
  2. 如何删除双系统中的其中一个(完全删除)
  3. stream 内存带宽测试工具
  4. 更改Xcode项目名及app名称
  5. 『Hammerspoon』Mac 锁屏自动开关蓝牙
  6. cpp读取分数并进行求和化简
  7. 两个分数化简比怎么化_分数化简比的方法什么,六年级上求比值与化简比的对比...
  8. python 删除文件夹中相似图片
  9. windows设置开机默认启动用户
  10. 大话伊辛模型之一:源起