博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课堂练习之找出所有的“1”
阅读量:4922 次
发布时间:2019-06-11

本文共 1543 字,大约阅读时间需要 5 分钟。

一、题目

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

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

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

二、设计思想

  对于这道题目,输入一个正整数,返回从1开始到这个数之间出现过的所有“1”的个数,我的思路是这样的,

  1、先要将这个数是几位数得出来;

  2、用一个for 循环将数字中德每一位存到数组中,以备后面使用;

  3、因为要得到总的1的个数,分别计算个位、最高位、和其它位的1的个数;

  4、最后将所有的求和。

三、设计代码

1 import java.util.*; 2  3 class ZhaoYi  4 { 5     public static void main(String[] args)  6     {         7         System.out.print("请输入一个正整数:"); 8         Scanner sc = new Scanner(System.in); 9         int num = sc.nextInt();        10         11         int m = zhaoYi(num);   //12         System.out.println("从1到该数字之间出现“1”的次数是:"+m+"次");        13         14     }15     public static int weiShu(int b)   //可以得到输入的数字的位数16     {17         int temp = 0;18         for (int i=1;i<32 ;i++ )19         {20             if (b/((int)Math.pow(10,i))==0)21             {22                 temp = i;23                 break;24             }25         }26         return temp;27     }28     29     public static int zhaoYi(int a)     //出现1的个数30     {31         int[] arr = new int[32];//一个32位的数组32         int[] sum = new int[32];//一个32位的数组,用来求和33         //int weiShu = 0;34         int SUM = 0;   //初始化最后的求和数        35         int n = a;    //转移36         int ws = weiShu(a);   //得到输入数的位数37 38         for (int i=0;i

四、结果截图

五、心得体会

  这次实验的思路比较明确,就是要将输入的数字的 每一位出现的1的个数得到,通过分析规律,将每一位出现1的个数,加起来,最后的到总和。每一位上的情况都能划分成是0,是1,和其余的数的区别,不过在编写的时候,也遇到了一点错误,就是在得到数的位数的时候,一直没能成功,其实这是一个非常简单的问题,最后也解决了。

转载于:https://www.cnblogs.com/KevinBin/p/4469687.html

你可能感兴趣的文章
php:获取一个表不含text类型的全部字段
查看>>
java-泛形使用
查看>>
多线程下C#如何保证线程安全?
查看>>
前端限流大法
查看>>
html 中head显示 在标题栏里面的图片
查看>>
关于float的低精度问题
查看>>
JavaScript学习笔记之Object
查看>>
poj1149 PIGS
查看>>
深浅拷贝与赋值
查看>>
SharePoint Online 创建网站集
查看>>
一阶段
查看>>
Programmer, Rank Thyself
查看>>
初识python+linux最基本的操作
查看>>
hdu 4207
查看>>
杨澜给二十几岁的女孩的告诫
查看>>
【BZOJ】2002: [Hnoi2010]Bounce 弹飞绵羊
查看>>
1082 射击比赛
查看>>
Python之Web前端jQuery扩展
查看>>
2015 Multi-University Training Contest 2
查看>>
装饰模式的巧妙运用
查看>>