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 and press enter: ");
      //This statement will capture the user input
      Scanner in = new Scanner(System.in);
      //Captured input would be stored in number num
      num = in.nextInt();
      //While Loop: Logic to find out the reverse number
      while( num != 0 )
      {
          reversenum = reversenum * 10;
          reversenum = reversenum + num%10;
          num = num/10;
      }

      System.out.println("Reverse of input number is: "+reversenum);
   }
}

输出结果:

Input your number and press enter:
145689
Reverse of input number is: 986541

程序2:使用for循环

import java.util.Scanner;
class ForLoopReverseDemo
{
   public static void main(String args[])
   {
      int num=0;
      int reversenum =0;
      System.out.println("Input your number and press enter: ");
      //This statement will capture the user input
      Scanner in = new Scanner(System.in);
      //Captured input would be stored in number num
      num = in.nextInt();
      /* for loop: No initialization part as num is already
       * initialized and no increment/decrement part as logic
       * num = num/10 already decrements the value of num
       */
      for( ;num != 0; )
      {
          reversenum = reversenum * 10;
          reversenum = reversenum + num%10;
          num = num/10;
      }

      System.out.println("Reverse of specified number is: "+reversenum);
   }
}

输出结果:

Input your number and press enter:
56789111
Reverse of specified number is: 11198765

程序3:使用递归

import java.util.Scanner;
class RecursionReverseDemo
{
   //A method for reverse
   public static void reverseMethod(int number) {
       if (number < 10) {
       System.out.println(number);
       return;
       }
       else {
           System.out.print(number % 10);
           //Method is calling itself: recursion
           reverseMethod(number/10);
       }
   }
   public static void main(String args[])
   {
    int num=0;
    System.out.println("Input your number and press enter: ");
    Scanner in = new Scanner(System.in);
    num = in.nextInt();
    System.out.print("Reverse of the input number is:");
    reverseMethod(num);
    System.out.println();
   }
}

输出结果:

Input your number and press enter:
5678901
Reverse of the input number is:1098765

当然,如果待逆序的这个数事先已经初始化了,就不用从键盘输入了,如:

class ReverseNumberDemo
{
   public static void main(String args[])
   {
      int num=123456789;//不从键盘输入,直接初始化为一个整数值。
      int reversenum =0;
      while( num != 0 )
      {
          reversenum = reversenum * 10;
          reversenum = reversenum + num%10;
          num = num/10;
      }

      System.out.println("Reverse of specified number is: "+reversenum);
   }
}
时间: 2024-10-19 15:19:53

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

Swift入门(十二)——利用Extension添加逆序输出字符串方法

Swift好像没有自带逆序输出字符串的方法,于是决定通过拓展(Extension)给String类添加一个逆序输出字符串的reverse方法. 首先新建一个Swift文件,命名规则不太清楚,于是暂且模仿OC叫做String+Operation吧,然后实现我们需要拓展的方法.下面先贴上代码,然后解释一下这段代码. //String+Operation.swifft import Foundation //逆序输出swift中的字符串 extension String{ func Reverse()

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

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

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

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赋

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题

又是新的一天,继续更新. 今天进入了新的章节,数组和字符串 1.逆序输出问题: 先来看代码吧 #include <stdio.h> //逆序输出 2017-8-16 #define maxn 105 int a[maxn]; int main(int argc, char* argv[]) { //int a[maxn]; int x, n = 0; while (scanf("%d", &x) == 1) a[n++] = x; for (int i = n -

41,逆序输出——C语言初学者百题大战之二十

#include<stdio.h> int main() { int a,b,c,d,e,n; scanf("%d",&n); a=n/10000; b=n%10000/1000; c=n%10000%1000/100; d=n%10000%1000%100/10; e=n%10000%1000%100%10; if(a!=0) printf("5\n%d%d%d%d%d\n",e,d,c,b,a); else if(a==0&&

Java例题_31 逆序输出数组的值

1 /*31 [程序 31 数组逆序] 2 题目:将一个数组逆序输出. 3 程序分析:用第一个与最后一个交换. 4 */ 5 6 /*分析 7 * 第一种方法:找到这个数组的中间下标,然后交换两端的数字,再顺序输出数组=====我觉得麻烦了 8 * 第二种方法:利用a.lengh找到数组的最后一个值,直接用递减的for循环,逆序输出 9 * */ 10 11 package homework; 12 13 public class _31 { 14 15 public static void m

Java入门基础学习源码,有C或C++语言基础的可以快速掌握

以下为完整源码,需要1.8版本JDK,否则部分新特性可能出现兼容问题,去掉注释号即可运行 package hello; import java.util.Scanner; public class Hello { public static void main(String[] args) { // TODO 自动生成的方法存根 /* //这是第一个程序 System.out.println("这是一个减法计算器"); Scanner in = new Scanner(System.i

Java入门-浅析Java学习从入门到精通【转】

一. JDK (Java Development Kit)  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什幺Java应用服务器实质都是内置了某个版本的JDK.因此掌握 JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发 的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等