zoukankan      html  css  js  c++  java
  • 1到一个整数之间1的个数

    一、设计思路

    从一开始到N进行遍历,求每一位上的1的个数,再对各个位上个数相加即为结果,比如12的1的个数为5,其中个位上有1个,十位上有4个,一共五个。

    二、代码

    package 找1;
    
    import java.util.Scanner;
    
    public class findone {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            Scanner A=new Scanner(System.in); 
            System.out.println("请输入一个十进制的正整数N:");
            int n=A.nextInt();
            
            int i,k=0;
            for(i=1;i<=n;i=i*10)
            {
                int m=i*10;
                int p=n%m,q=n/m;
                if(p/i==0)
                {
                    k=k+q*i;
                }
                else if(p/i==1)
                {
                    k=k+q*i;
                    k=k+n%i+1;
                }
                else
                {
                    k=k+(q+1)*i;
                }
            }
            
            System.out.println("1到"+n+"之间1的个数为:"+k);
            
        }
    
    }

    三、截图

    四、结果分析

    将问题分解化,一步一步进行求解,这也就是课上提到的大问题变成小问题,一个过程一个过程来慢慢解决,最后会中到一起,问题就解决了。

  • 相关阅读:
    ByteArrayInputStream(字节数组输入流) 示例
    ASP.NET 页面对象模型
    HTML常用标记
    [elementui]上线iconfont乱码
    time与timeEnd测试运行时间
    放大镜效果
    canvas
    [css] 样式列表
    千分符
    centos源失败
  • 原文地址:https://www.cnblogs.com/luffyyang/p/4558669.html
Copyright © 2011-2022 走看看