当前位置:网站首页>【输出一个整数的的每一位,由高到低输出。使用递归和不使用递归】
【输出一个整数的的每一位,由高到低输出。使用递归和不使用递归】
2022-08-03 10:49:00 【DJL_new_life】
The future is scary but you can’t just run to the past cause it’s familiar.
未来会让人心生畏惧,但是我们却不能因为习惯了过去,就逃去过去。
题目:输出一个整数的的每一位,由高到低输出
这道题正常的思路是使用递归的方法去写,但是我在这里没有使用递归的方法去写。
思路是:假设判断出这个整数是一个n位的数字,再使用这个整数去除10^(n-1),就可以去掉除了最高位的数字,得到最高位,再对于这个整数取模10^(n-1),得到除了最高位以外的数字,重复进行以上操作
以下是完整代码:
import java.util.Scanner;
/** * 输出一个整数的每一位,如:123的每一位是1 , 2 , 3 * 从高位到低位输出 */
public class OutHignNums {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数:");
int a = scanner.nextInt();
int ret = a;
int i = 1;
//算出这个数有几位
while(ret/10 != 0){
ret = ret/10;
i++;
}
//只有一位数时,直接输出,无需进行下面的代码
if(i == 1){
System.out.println(a);
return;
}
for (int j = i-1; j >= 0; j--) {
double tens = Math.pow(10,j);
int num = (int)(a/tens); //得到最高位的数,此时a没有发生改变
//tens是double类型,需要强制类型转换为int,消除小数.
//否则得到的数字是小数,小数点后跟着低位的数
//每次输出整数的最高位
System.out.print(num + " ");
a = (int)(a % tens); //得到去掉最高位的数,继续下次循环
}
}
}
使用递归来解决输出一个整数的的每一位,由高到低输出。
public class Test2 {
public static void main(String[] args) {
prin(3239);
}
public static void prin(int a){
if(a > 9){
prin(a/10);
}
System.out.println(a%10);
}
}
递归的思路:
终止的条件是当 a<= 9时,输出a%10,程序结束。
if(a > 9){
prin(a/10);
}
这段代码的意思是:
当a > 9时,不断的调用自身函数,传入丢掉个位的数。直到a<= 9,结束调用自身函数。
可能代码写的不是很好,希望兄弟们不要介意
边栏推荐
猜你喜欢
QT with OpenGL(HDR)
Advanced use of MySQL database
玉溪卷烟厂通过正确选择时序数据库 轻松应对超万亿行数据
This article understands the process from RS485 sensor to IoT gateway to cloud platform
4G采集ModbusTCP转JSON接MQTT云平台
全新的Uber App设计
如何通过DBeaver 连接 TDengine?
Machine Learning Overview
MySQL数据库基本使用
type="module" you know, but type="importmap" you know
随机推荐
如何通过DBeaver 连接 TDengine?
Dry goods!A highly structured and sparse linear transformation called Deformable Butterfly (DeBut)
QT with OpenGL(Shadow Mapping)(面光源篇)
for in 和 for of的区别
大佬们,我遇到一个问题:我源端mysql有一张一直在写入的表,我使用mysql cdc connec
GBase 8c分布式数据库,数据如何分布最优?
Activiti产生的背景和作用
STM32入门开发 介绍SPI总线、读写W25Q64(FLASH)(硬件+模拟时序)
Boolean 与numeric 无法互转
MySQL binlog的这种时间怎么处理呢??
孙宇晨式“溢价逻辑”:不局限眼前,为全人类的“星辰大海”大胆下注
3D激光SLAM:LeGO-LOAM---两步优化的帧间里程计及代码分析
科普大佬说 | 黑客帝国与6G有什么关系?
一文了解,从RS485传感器到物联网关到云平台过程
巴比特 | 元宇宙每日必读:玩家离场,平台关停,数字藏品市场正逐渐降温,行业的未来究竟在哪里?...
进入 SQL Client 创建 table 后,在另外一个节点进入 SQL Client 查询不到
Advanced use of MySQL database
Spinner文字显示不全解决办法
【AppCube】数字孪生万物可视 | 联接现实世界与数字空间
HCIP第十七天笔记