• 第8周 软件工程 找1


    一、题目要求

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

    二、设计思想

    一个数中含有1的个数为个位、十位、百位等所有位置上的1的总个数;查找从1开始的每个数中含有的1的个数,保留在count中;

    三、源代码

    #include <iostream.h>
    int find(int num)
    {
    	int count=0;//定义一个存储1的个数的变量
    	int temp;//定义一个缓存的变量
    	for(int i=1;i<=num;i++)
    	{
    		temp=i;
    		while(temp!=0)
    		{
    			if(temp%10==1)
    			{
    				count++;
    			}
    			temp=temp/10;
    		
    		}
    	}
    	return count;
    }
    
    int main(void)
    {
    	int num1;
    	cout<<"请输入数:";
    	cin>>num1;
    	cout<<"包含1的个数是:"<<find(num1)<<endl;
    	return 0;
    }
    

      

    四、结果截图

    五、总结

    总结:学会了while的使用,注意while停止的标志,缓存变量temp的巧妙设置;

    遇到问题:课堂中发现的规律并没有深入理解

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

    六、psp0

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    4/28

    22:35

    23:59

    5min

    80min

    找1的个数

     

  • 相关阅读:
    JavaBean和Map之间的转化
    java基础Map遍历
    sql server
    android之使用百度地图(1)
    Java基础知识2(字符串)
    Java基础知识1
    DAY12-Java中的类--接DAY10
    DAY11-LocalDate小练习
    DAY10-万物皆对象-2018-2-2
    DAY9-字符串笔记整理2018-1-19
  • 原文地址:https://www.cnblogs.com/zhaixing/p/4464475.html
Copyright © 2020-2023  润新知