zoukankan      html  css  js  c++  java
  • 递归方法:输入一个多位整数,计算出从0到该数1出现的个数。

    package com.company.Tt;
    import java.util.Scanner;
    public class T4 {  
    	public static void main(String[] args) {
    		
    		Scanner cs = new Scanner(System.in);
    		System.out.println("请输入一个多位整数来计算出0到该数的1出现的个数......");
    		int n = cs.nextInt();    //要求操作者输入一个正整数
    		
    		T4 t = new T4();  //声明一个T4类的对象
    		t.finds2(n);    //调用方法2
    		System.out.println("0到"+n+"之间出现1的个数为:"+t.n1+"个");
    		//打印方法2的结果
    	}
    	
    	public int n1 = 0;	//定义一个成员变量计数器n1
    	public void finds2(int n2){// 方法2递归
    		
    		if(n2 == 1 ){	//如果测试数为1计数器加1		
    			this.n1 += 1;
    		}else{
    			
    			f(n2);//检测各位的数值是否为1
    			finds2(n2-1); //自身调用
    			
    		}
    	}
    	public void f(int a){//对多位检测是否为1
    		if(a>=10){//检测该数是否已经为单位数了,如果为多位数则进行求余检测
    			if(a%10 == 1){//检测各位
    				this.n1 += 1;	
    			}
    			//在此减一位递归
    			f(a /= 10 );   //递减一位
    			
    		}else {//检测该数如果为单位数是,对该单位数进行检测
    			if(a == 1){
    				this.n1 += 1;
    			}
    		}
    		
    	}
    }
    

    自我感觉用for循环比较爽,这纯属娱乐一下。。。。

    图解:

  • 相关阅读:
    函数详解
    print()函数知识点总结
    python基本数据类型-字符串常用操作
    2020.7.17第十二天
    2020.7.16第十一天
    2020.7.15第十天
    2020.7.14第九天
    2020.7.13第八天
    2020.7.12第七天
    2020.7.11第六天
  • 原文地址:https://www.cnblogs.com/tv151579/p/2287089.html
Copyright © 2011-2022 走看看