zoukankan      html  css  js  c++  java
  • 《找“1”》

    一 实验要求

    给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
    要求:
    写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12)  = 5。
    在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。

    二 思路

    计算从一到这个数有多少个一,只要一个一个数出就可以了,用到for循环一个一个数检验,一个循环内得到这个数的每一位,每得到一个一就将计数加一,for循环完成后输出。

    三 代码实现

    //康娜
    #include<iostream>
    using namespace std;
    
    void main()
    {
        int i,n,a=0,b,c,length=0;
        cout << "请输入计算的数字";
        cin >> n;
        
        for (i = 1; i <= n; i++){
            b = i;
            while (b != 0)
            {
                c = b % 10;
                if (c== 1)
                {
                    a++;
                }
                b = b / 10;
            }
    
        }
        cout << a;
    }


    四 效果截图

    五 总结

    在思考这道题目的时候,本来我陷入了一个死胡同,但是后来我理清思绪,换了一种思考方式就想出了这种方法。以后如果在思考问题时换一种思路,也会得到很好的效果。

  • 相关阅读:
    Tomcat安装和使用
    mysql5.7.18安装配置
    Memcached安装与使用
    Redis
    nginx的安装与使用
    python操作mysql
    Paramiko模块
    协程与异步IO
    Queue与生产者消费者模型
    C# 生成验证码 方法二
  • 原文地址:https://www.cnblogs.com/lottie021/p/4551595.html
Copyright © 2011-2022 走看看