将输入的一个数进行多少次变换变成个位数

来源:互联网 发布:神龙战士进阶数据 编辑:程序博客网 时间:2024/06/06 00:42

题目:将输入的一个数进行多少次变换变成个位数
例子:输入 285 …………. 2*8*5=80 ……………8*0=0 需要2次变换
要求输入:整数小于等于2,000,000,000

import java.util.Scanner;public class test {     private static int temp = 0;    public static int  zhuanhuan(int i){            jsq();//计数器+1            String s = String.valueOf(i);   //int转换字符串   第一种方法:s=i+""; 会产生一个string对象            char c[] = s.toCharArray();  //将字符串变换为字符数组            int k = Integer.parseInt(String.valueOf(c[0]));            for(int j = 1; j< c.length; j++){                k  *= Integer.parseInt(String.valueOf(c[j]));                if (k/10 == 0) break;            }            if (k/10 != 0){  //不是个位数?                return zhuanhuan(k);            } else{                return k; //返回该个位数            }    }    public static int jsq(){  //计数器        return ++temp;    }    @SuppressWarnings("resource")    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.print("请输入一个数:");        int input = sc.nextInt();        if(input>2000000000 || input<0){            System.out.println("输入数字不符合规范");        }else{            int i = zhuanhuan(input);            System.out.println("需要转换:"+temp+"次就可以变为个位数:"+ i );        }    }}

细化完善代码;

import java.util.Scanner;public class Main {     private static int temp = 0;    public static int  zhuanhuan(int i){            String s = String.valueOf(i);   //int转换字符串   第一种方法:s=i+""; 会产生一个string对象            char c[] = s.toCharArray();  //将字符串变换为字符数组            int k = Integer.parseInt(String.valueOf(c[0]));            for(int j = 1; j< c.length; j++){                k  *= Integer.parseInt(String.valueOf(c[j]));                if(k==0) break;            }            jsq();//计数器+1            if (k/10 != 0){  //不是个位数?                return zhuanhuan(k);            } else{                return k; //返回该个位数            }    }    public static int jsq(){  //计数器        return ++temp;    }    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int input = sc.nextInt();        if (input<10){//输入个位数返回当前数值            System.out.println(temp);        }else{            zhuanhuan(input);            System.out.println(temp);        }    }}
阅读全文
0 0
原创粉丝点击