Java逆序输出整数

题目要求:编写方法reverseDigit,将一个整数作为参数,并反向返回该数字。例如reverseDigit(123)的值是321。同时编写程序测试此方法。

说明:10的倍数的逆序,均以实际结果为准,如100的逆序为1。此方法也可以实现负数的逆序输出。

 1 import java.util.Scanner;
 2
 3 public class Test {
 4     static int reverseDigit(int n) {
 5         int result = n, count = 1;        //先将n赋值给result,用count计数以便后续数组操作
 6         while ((result /= 10) != 0) {    //使用while循环,对result进行除10取整操作
 7             count++;                    //如果取整后不为0,则count加一
 8         }
 9         int[] list = new int[count];    //使用数组存放n的每一位,长度为count,注意此处result已经等于0
10         for (int i = 0; i < count; i++) {    //循环count次
11             list[i] = n % 10;            //存放n的每一位,从后往前,逆序存放
12             result += list[i] * Math.pow(10, count - 1 - i); //使用幂运算,底数为10,指数为count-1-i
13             n = n / 10;                    //n除10取整
14         }
15         return result;
16     }
17
18     public static void main(String[] args) {
19         int n;
20         System.out.println("Please input a int:");
21         Scanner sc = new Scanner(System.in);
22         n = sc.nextInt();
23         System.out.printf("The reverse is %d !\n", reverseDigit(n));
24         sc.close();
25     }
26 }

原文地址:https://www.cnblogs.com/linkchen/p/10682572.html

时间: 2024-10-28 15:59:06

Java逆序输出整数的相关文章

Java入门:一些初学者需要掌握的基础算法程序——逆序输出

[问题] 将一个整数逆序输出. [思路] 有三种方法可以将一个数逆序输出: 1)使用while循环 2)使用for循环 3)使用递归 [代码] 程序1:使用while循环 import java.util.Scanner; class ReverseNumberWhile { public static void main(String args[]) { int num=0; int reversenum =0; System.out.println("Input your number an

1111 多个整数的逆序输出

题目来源:https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1111Description输入n和n个整数,以与输入顺序相反的顺序输出这n个整数.要求不使用数组,而使用递归函数实现.递归函数实现过程如下:void inverse(int n){    if(n >1)   {        (1) 读入一个整数,存入num;        (2)  将后面的n-1个数逆序输出: inverse(n-1);          (3)  输出num: 

java版的单向链表的逆序输出

将单向链表逆序输出,方法有三种: a.遍历链表,将每个节点的内容存入一个数组中,然后逆序输出数组(最简单的做法) b.使用栈来逆序输出 c.直接将链表逆序然后输出(本文采用的方法) 先介绍算法: 1). 若链表为空或只有一个元素,则直接返回: 2). 设置两个前后相邻的指针p,q. 将p所指向的节点作为q指向节点的后继: 3). 重复2),直到q为空 4). 调整链表头和链表尾 示例:以逆序A->B->C->D为例,图示如下 package com.moluo.shujujiegou;

算法-整数的正序和逆序输出

其实上一篇文章用递归实现了整数的正序输出,思考了整数还是可以逆序输出,不过大同小异,没有太多差别: 正序输出 -(void)printOutNumber:(NSInteger)number{ //取整,不断的递归取整,之后取余 if (number>10) { [self printOutNumber:number/10]; } NSLog(@"数值%ld",number%10); } 逆序输出 循环输出,这个比较简单容易理解: -(void)reverseNumber:(NSI

整数的逆序输出 输入3,2就算 2+22+222的结果

#include<stdio.h> #include<math.h> //整数逆序输出 void nixu() { int num,i; i = 0; scanf("%d",&num); int converse = 0; while(num>0) { i = num % 10; num /= 10; converse = i + converse*10; } printf("逆序后的整数为%d\n",converse); }

javascript将整数逆序输出

我在看中国大学mooc里面的C语言教程的时候,将任意整数逆序输出. 代码如下: #include <stdio.h> int main(){ int x; //scanf("%d", &x); x=700; int digit; int ret; while( x>0 ){ digit = x%10; printf("%d",digit); ret = ret*10 + digit; //printf("x=%d,digit=%d

java经典算法之逆序输出

1 /** 2 *输入字符,将数组逆序输出 3 */ 4 import java.util.Scanner; 5 public class InReserve 6 { 7 public static void main(String[] args) 8 { 9 reverse(); 10 } 11 public static void reverse(){ 12 13 String[] arr =new String[5]; 14 for(int i=0;i<arr.length;i++){ 1

1111: 多个整数的逆序输出(函数专题)

题目描述 输入n和n个整数,以与输入顺序相反的顺序输出这n个整数.要求不使用数组,而使用递归函数实现. 递归函数实现过程如下: void inverse(int n) { if(n >1) { (1) 读入一个整数,存入num; (2)  将后面的n-1个数逆序输出: inverse(n-1); (3)  输出num: } if( n == 1)  直接输出num: } 输入 输入有两行,第一行是一个正整数n,第二行有n个整数,整数之间由空格隔开. 输出 #include<stdio.h>

zzuli oj 1111 多个整数的逆序输出

题意描述: 输入n和n个整数,以与输入顺序相反的顺序输出这n个整数.要求不使用数组,而使用递归函数实现. 递归函数实现过程如下: void inverse(int n) { if(n >1) { (1) 读入一个整数,存入num; (2)  将后面的n-1个数逆序输出: inverse(n-1); (3)  输出num: } if( n == 1)  直接输出num: } 解题思路: 先输入一个整数n,编写递归函数,分为n=1或n>1两种情况:如果大于1,先读入一个整数存入num,然后再利用递