提取整数的各个位数 (Separating the Digits in an Integer)
----------------------------------------------------------------------------------------------
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)相关推荐
- 第六章第二题(求一个整数各位数字之和)(Sum the digits in an integer)
*6.2(求一个整数各位数字之和)编写一个方法,计算一个整数各位数字之和.使用下面的方法头: public static int sumDigits(long n) 例如:sumDigits(234) ...
- 编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和
编程笔试(解析及代码实现):求出一个整数中各位数上所包含全部质数之和 目录 题目描述 代码实现 题目描述 求出一个整数中各位数上所包含全部质数之和 一家电子商务公司计划在圣诞节给客户提供特别折扣,他们 ...
- 控制台输入一个整数,取该整数的各位数,判断其是否能被该整数整除,能则返回true,不能则返回false
这是出自美国中学的一道编程题,个人觉得对我这种初学者而言挺有意思的,就做了一下,这道题目的难点在于找出所输入整数的各位数 package 练习题; import java.util.Scanner;p ...
- 输入一个整数求其位数和各个位数之和
说一下"输入一个整数求其位数和各个位数之和", 举个例子输入1223,得到1223的位数是4,各个位数之和是12. 对于这个题目我的做法是: #include<stdio.h ...
- android edittext 过滤英文名称,Android 限制edittext 整数和小数位数 过滤器(详解)
写了一个过滤器,根据需要限制edittext输入的整数和小数位,如下代码: package allone.verbank.apad.client.component; import android.t ...
- 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。
本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 函数接口的定义 int Count_Digit ( const int N, cons ...
- 统计个位数字 (本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3)
5.本题要求实现一个函数,可统计任一整数中某个位数出现的次数.例如-21252中,2出现了3次,则该函数应该返回3. 实现代码: int Count_Digit ( const int N, cons ...
- 用java将输入的整数逆序输出_输入一个整数判断这个整数是几位数,并把这个整数逆序输出! | 学步园...
import java.util.Scanner; /** * * 问题:输入一个整数判断这个整数是几位数,并把这个整数逆序输出! * * @author Administrator * * 程序如下 ...
- (C语言)从键盘输入输入一个不大于5位的整数,判断位数,并逆序输出
@[TOC]( (C语言)从键盘输入输入一个不大于5位的整数,判断位数,并逆序输出 #include <stdio.h> void main() {int n,a,b,c,d,e,m;pr ...
- 接受一个整数,输出这个整数是几位数
import java.util.Scanner;/*** @author LLJ* @time 2020-5-5 下午5:19:52* @Description 接受一个整数,输出这个整数是几位数* ...
最新文章
- python的类型化_显式类型化的Python版本?
- 黄连解毒汤合大黄甘草方治疗口腔扁平苔藓
- 比特币现金的第四次战役
- catia中sew的用法_CATIA超级副本(PowerCopy)使用方法总结 | 坐倚北风
- python新手入门英文词汇笔记(1-1)_Python新手入门英文词汇(1-1)
- 模拟网页行为之工具篇
- .net 获取xml里面的值_Java-XML技术
- Linux基础——搭建自己的云计算, 多电脑共享你云端文件
- java 纳秒 毫秒,秒(s) 毫秒(ms) 微秒(μs) 纳秒(ns) 皮秒(ps)及Java获得
- Html + JQuery 点击图片弹出视频加蒙版,全局居中并且可关闭
- 蓝牙耳机播放音频无声问题的解决方案
- 一文看懂Android.bp和Androd.mk区别以及宏变量对应关系
- AU入门音频编辑基本认识
- WIFI系列协议--802.11s--Mesh网络
- java 视频边下边播,VideoViewDemo android 播放器,支持边下边播 238万源代码下载- www.pudn.com...
- 云安全软件市场现状研究分析报告 -
- Android开发技巧——Camera拍照功能
- ffmpeg mp3转pcm指令
- ABAQUS如何输出应力应变曲线(XY曲线)
- ACL2022 事件抽取