zoukankan      html  css  js  c++  java
  • 课堂练习_找出1的个数

    一、思路想法

        在找出1的个数,首先不能用穷举的方法。在此程序中,我借鉴了同学的方法,将各个位

      上的数值的1的个数相加,最后得出最终的个数。

    二、代码

      

    #include "stdafx.h"
    #include <stdio.h>
    int Count(int num)
    {
        int count,mul,num1,num2,num3;
        count=0;
        mul=1;                                             
        num1=num2=num3=0;
        while(num/mul)
        {
            num1=num-(num/mul)*mul;
            num2=(num/mul)%10;                
            num3=num/(mul*10);           
            switch(num2)                            
            {
            case 0:                           
                count+=num3*mul;
                break;
            case 1:   
                count+=num3*mul+num1+1;
                break;
            default:  
                count+=(num3+1)*mul;
                break;
            }
            mul*= 10;
        }
        return count;
     }
     int main(int argc, char* argv[])
     {
        int num,ones;
        printf("请输入一个正整数:");
        scanf("%d",&num);
        ones=Count(num);
        printf("该数值中1的个数为:%d
    ",ones);
        return 0;
     }

    三、截图

      

    四、总结

        在这次的代码中,我根据老师的想法并没有得出什么简单的规律,反而是在听了同学的想法和代码后才

      有了好的解决方法,即将每一位上出现1的次数记录下来,相加得出结果。

  • 相关阅读:
    造数--存储过程,循环
    一句话搞定python六剑客
    数据库基本操作--增删改查
    session与cookie区别与联系
    正则表达式中 group groups区别
    迭代总结(随时更新)
    postman抓包
    linux常用命令
    抓包
    jdk 11特性
  • 原文地址:https://www.cnblogs.com/littlechar/p/4477213.html
Copyright © 2011-2022 走看看