zoukankan      html  css  js  c++  java
  • 计算“1”的个数

    1.设计思想

     对于一个整数来说,每一位如十位、百位、千位等出现1的次数根据该位数上的数值及其低位或高位影响。当该位数上的数为0时,出现1的次数可能由高位决定,等于高位数字与当前位数相乘;当该位数上的数为1时,出现1的次数受高位和低位影响,及等于高位数字与当前位数相乘并加上低位数字再加1;当该位数上的数大于1时,出现1的次数只由高位决定,及等于高位数字加1后乘上当前位数。通过循环控制每一次的判断,当前位数不断增加。

    2.源程序

    #include <iostream>
    using namespace std;
    
    int f(int N)
    {
        int m=0,n=1;
        int a,b,c;
        while(N/n!=0)
        {
            a=N-(N/n)*n;
            b=(N/n)%10;
            c=N/(n*10);
            if(b==0)
            {
                m+=c*n;
            }
            else if(b==1)
            {
                m+=c*n+a+1;
            }
            else
            {
                m+=(c+1)*n;
            }
            n=n*10;
        }
        return m;
    }
    
    void main()
    {
        int num;
        cout<<"请输入一个十进制的整数:"<<endl;
        cin>>num;
        cout<<"从1到"<<num<<"的所有整数中,1的个数为:"<<f(num)<<endl;
    }


    3.结果截图

    4.总结

     主要是要找到规律,一开始没有很好的找到规律,当通过不断的用整数进行寻找规律,而当规律找到时,总结规律也是很重要的,分析规律进行最后的总结,用表达式进行表示,能够实现计算。

  • 相关阅读:
    自动化运维与Saltstack
    keepalived+nginx 高可用集群
    Nginx集群(负载均衡)
    Nginx优化
    Nginx管理(一)
    业务环境、测试、上线逻辑
    服务器部署逻辑
    python面试题——爬虫相关
    springmvc文件上传
    springmvc入门
  • 原文地址:https://www.cnblogs.com/mxj333/p/4553429.html
Copyright © 2011-2022 走看看