java基础练习 给定一个正整数m,统计m的位数,分别打印每一位数字,再按照逆序打印出各位数字。

要求:m定义为类的属性,需定义构造函数为m赋值;当m大于99999时,输出错误信息“the number is too large”,不再执行。

public class T {
    private int m;

    public T(int m) {
        super();
        this.m = m;
    }

    public int getM() {
        return m;
    }

    public void setM(int m) {
        this.m = m;
    }
    public void M()
    {
        if(m>99999)
        {
            System.out.println("the number is too large");
        }
        else
        {
            String str=m+"";
            System.out.println("一共有"+str.length()+"位");
            System.out.println("每位数字是:");
            for(int i=0;i<str.length();i++)
            {
                System.out.print(str.charAt(i)+" ");
            }
            System.out.println("\n逆序");
            for(int i=str.length()-1;i>=0;i--)
            {
                System.out.print(str.charAt(i));
            }

        }
    }
    public static void main(String[] args)
    {
        T m=new T(85412);
        m.M();

    }

}
时间: 2024-08-09 19:53:41

java基础练习 给定一个正整数m,统计m的位数,分别打印每一位数字,再按照逆序打印出各位数字。的相关文章

面试:用 Java 逆序打印链表

昨天的 Java 实现单例模式 中,我们的双重检验锁机制因为指令重排序问题而引入了 volatile 关键字,不少朋友问我,到底为啥要加 volatile 这个关键字呀,而它,到底又有什么神奇的作用呢? 对 volatile 这个关键字,在昨天的讲解中我们简单说了一下:被 volatile 修饰的共享变量,都会具有下面两个属性: 保证不同线程对该变量操作的内存可见性. 禁止指令重排序. 共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量. 可见性:一个线

给定一个英文原文,统计文件里面一共有多少个不同的英文单词

wordsCounter.cpp // wordsCounter.cpp : Defines the entry point for the console application.// #include "stdafx.h"#include "wordsCounter.h" #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif ////

一道笔试题-给定一个正整数序列,请尝试将它们重新排列使得排列的结果最大。

问题描述:给定一个正整数序列,请尝试将它们重新排列使得排列的结果最大,例如正整数序列为9,31,35,3,7则最大值为9735331. 思路分析:先将正整数序列转换为字符串数组,然后字符串数组进行排序,最后依次输出字符串数组即可.根据题目的要求,两个数字m和n排成的数字mn和nm,如果mn<nm,那么我们应该输出nm,也就是m应该排在n的后面,也就是m<n.反之,如果nm<mn,m排在n的前面,n<m.如果mn==mn,m等于n. 比较函数的定义是本解决方案的关键.这道题其实就是希

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。

问题描述:给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果.输入值小于1000.如,输入为10,程序应该输出结果为2.(共有两对质数的和为10,分别为(5,5),(3,7)) 附算法代码: public class PrimeNumber { //判断是否是质数 protected boolean isPrimeNumber(int num){ if(num == 2) return true;//2特殊处理 if(num < 2 || num % 2 == 0) r

9.5位操作(三)——给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数

/** * 功能:给定一个正整数,找出与其二进制表示中1的个数相同,且大小最接近的那两个数. * (一个略大一个略小.) */ 三种方法: 方法一:蛮力法 方法二:位操作法 <span style="white-space:pre"> </span>/** * 方法:位操作法 * 思路:获取后一个较大的数 * 1)计算c0和c1.c1是拖尾1的个数,c0是紧邻拖尾1的作坊一连串0的个数. * 2)将最右边.非拖尾0变为1,其位置为p=c1+c0. * 3)将位p

给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 &lt;把一个整数各个数位进行全排列&gt;

"""给定一个正整数,实现一个方法求出离该整数最近的大于自身的 换位数 -> 把一个整数各个数位进行全排列""" # 使用 permutations() 方法实现import itertools def full_arrangement(num): my_str = '' my_list = [] permutation = list(itertools.permutations(str(num), len(str(num)))) for

给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。

/* 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化. 返回你可以获得的最大乘积. */ #include<stdio.h> #include<math.h> main() { int n,rs=1; scanf("%d",&n); if(n==2){ printf("1\n"); return 0; } if(n==3){ printf("2\n"); return 0; } whil

c#编程:给定一个正整数求出是几位数并逆序输出

<span style="color:#FF0000;">第一步:把输入的数字转为字符串n.ToString() 第二步:求出字符串的长度即为正整数的位数 第三步:从后向前逆序输出</span> 附代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; //给一个正整数, //要求:一.求它是几位数,二.逆序打印出各位数字. namespa

输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

package com.hanqi; import java.util.*; public class Nixudayin { public static void main(String[] args) { // TODO 自动生成的方法存根 System.out.println("输入一个不多于5位的正整数"); Scanner shu=new Scanner(System.in); String a=shu.next(); System.out.println("输入的