zoukankan      html  css  js  c++  java
  • 课堂练习----“在正整数中寻找1的个数”

    一、题目要求

      给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。

       要求: 写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。

      在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少?

    二、设计思想

      从个位,十位,百位等一直到最高位寻找1的个数,最终将它们相加即求得其中出现“1”的总个数。首先我们俩从实际数据出发,在课堂上计算了3,13,23,33,43,53,63,73,83,93,103,113,123中各个数字中1出现的个数,然后从中总结出规律然后编程实现了。

    三、代码实现

     1 #include<iostream.h>
     2 int main()
     3 {
     4     int count=0,i,N,temp;
     5     cout<<"请输入正整数的值:";
     6     cin>>N;
     7     for(i=1;i<=N;i++)
     8     {
     9         temp=i;//记录i的值
    10         while(temp!=0)
    11         {
    12             if(temp%10==1)
    13             {
    14                 count=count+1;
    15             }
    16             temp=temp/10;
    17         }
    18     }
    19     cout<<N<<"包含"<<count<<"个“1”"<<endl;
    20     return 0;
    21 }

    四、实现截图

    五、个人总结

      这个程序用了temp变量,count统计1的个数,虽然代码较短,但思考的过程是重要的,也是艰难的,刚开始没有思路,后来经过跟同学的讨论才慢慢发现了其中的奥秘,多向他人学习,才能使我们共同进步。

  • 相关阅读:
    ZJU 1610
    zju1484
    字符串赋值与初始化
    内核线程、内核级线程(轻量级进程)和用户级线程
    Mysql基础
    结构体的sizeof
    对象属性值读取问题
    返回引用类型
    操作符重载为成员函数、非成员函数与友元函数的区别
    运算符优先级
  • 原文地址:https://www.cnblogs.com/czl123/p/4465030.html
Copyright © 2011-2022 走看看