微软面试题,查找1的个数

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

用java代码实现查找1的个数

  1. import javax.swing.*;
  2. public class phenixHasOne{
  3. public static void main(String[]args){
  4. String strNumber=JOptionPane.showInputDialog("please input the number ");
  5. //int number=Integer.parseInt(strNumber);
  6. int oneNumbers=0;
  7. for(int i=strNumber.length()-1,j=0;i>=0;i--,j++)
  8. {
  9. String strbefore=strNumber.substring(0,i);
  10. String strlast=strNumber.substring(i+1,strNumber.length());
  11. String strcurrentNumber=strNumber.substring(i,i+1);
  12. //只有一位的时候
  13. if(strbefore.equals("")&&strlast.equals("")){
  14.     oneNumbers+=OneNumbers(0,0,Integer.parseInt(strcurrentNumber),(int)Math.pow(10.0,(double)j));    
  15.     break;
  16. }
  17. //当是第一次=的时候
  18. if(i==strNumber.length()-1)
  19. {
  20. strlast="";
  21. System.out.println("前边数字:"+strbefore);
  22. System.out.println("后边数字"+strlast);
  23. System.out.println("当前数字"+strcurrentNumber);
  24. oneNumbers+=OneNumbers(Integer.parseInt(strbefore),0,Integer.parseInt(strcurrentNumber),(int)Math.pow(10.0,(double)j));
  25. continue;
  26. }
  27. //最后一次的时候
  28. if(i==0)
  29. {
  30. strbefore="";
  31. System.out.println("前边数字:"+strbefore);
  32. System.out.println("后边数字"+strlast);
  33. System.out.println("当前数字"+strcurrentNumber);
  34. oneNumbers+=OneNumbers(0,Integer.parseInt(strlast),Integer.parseInt(strcurrentNumber),(int)Math.pow(10.0,(double)j));
  35. continue;
  36. }
  37. System.out.println("前边数字:"+strbefore);
  38. System.out.println("后边数字"+strlast);
  39. System.out.println("当前数字"+strcurrentNumber);
  40. oneNumbers+=OneNumbers(Integer.parseInt(strbefore),Integer.parseInt(strlast),Integer.parseInt(strcurrentNumber),(int)Math.pow(10.0,(double)j));
  41. System.out.println(".......................................");
  42. }
  43. System.out.println("total numbers of one is "+oneNumbers);
  44. }
  45. public static int OneNumbers(int before,int last,int currentNumber,int metric){
  46.     int number=0;
  47.     if(currentNumber>1)
  48.     {
  49.         number=(before+1)*metric;
  50.     }
  51.     if(currentNumber==1)
  52.     {
  53.         //说明是个位
  54.         if(metric==1){
  55.         number=before+1;
  56.             }
  57.         else{
  58.             number=(before)*metric+(last+1);
  59.         }
  60.     }
  61.     if(currentNumber==0)
  62.     {
  63.         number=before*metric;
  64.     }
  65.     
  66.     return number;
  67. }




微软100道算法面试题(一) 程序员为什么要学数据结构? 在计算机发展的初期,人们使用计算机的主要目的是处理数值计算问题。使用计算机解决具体问题一般需要经过以下几个步骤:首先从具体问题抽象出适当的数学模型,然后设计或选择解此数学模型的算法,接着编写程序并进行调试、测试,直至得到最终的解答。 由于最初涉及的运算对象是简单的整型、实型或布尔型数据,所以程序设计者的主要精力集中于程序设计的技巧上,而无需重视数据结构。随着计算... 阅读详情

相关推荐

12. 微软面试题:输入一个已经按升序排序过的数组和一个数字,在数组中查找个数,使得它们的和正好是输入的那个数

题目:输入一个已经按升序排序过的数组和一个数字, 在数组中查找个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。 分析: 通过设置数组首尾指针,i = 0, j = len -1,  因为数组是有序的,当array[i] + array[j] 大于给定的数字value时,j -- , 如果小于, i++

我的技术生活 2438

找出1个数(三种解法)

题目描述: /*给出一个数字(大于等于0),求出其二进制形式下1个数*/ 思路: 1.可以将1进行左移,如果与这个数字与出来的结果等于1左移出来的结果,此时就有 一个1,循环即可 2.将数字进行右移,然后让其与1相与,若结果为1,则说明此时有一个1,循环即可 3.将这个数字与它减1的数字,若结果不为0,则说明有一个1,循环即可 代码示例: 思路一: /*给出一个数字(大于等于0),求出其二进制形式下1个数*/ import java.util.Scanner; public class Coun

qq_43713040的博客 1246

从N个数中选最小的K个数

<br /> <br /> <br /> <br />声明:题目来自: http://blog.csdn.net/v_JULY_v/archive/2010/11/17/6015165.aspx  JULY整理了100道微软等公司的面试题目,我想先不看答案:http://blog.csdn.net/v_JULY_v/archive/2011/01/10/6126406.aspx 自己先做一遍。<br /> <br />题目:<br /><br />5. 查找最小的k 个元素<br />题目:输入

arrow_pig的专栏 2563

Java基础(for循环99乘法表+杨辉三角)

一.自增自减运算(难点) i++,i--:先赋值再加减. ++i,--i:先加减再赋值. 现在用具体代码来解释一下: package day0513; public class auto_sub { //快捷键psvm public static void main(String[] args){ int x=4,x1=4,x2=4; in...

冰月灵狐 1570

找“1”的个数

一、题目: 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。要求: 1.写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数。例如 f(12) = 5。 2.在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。 二 思路 总体是寻找各个位置上1个数。首先需要把数字进行拆分,这是有三种情况...

weixin_34313182的博客 136

java递归输出杨辉三角,打印帕斯卡三角(递归)(JAVA

So far I have this, but I am not quite sure how printPTriangle can print the triangle using the code. If someone could help me out with this, I would be grateful.public static int factorial(int n) {if...

weixin_32921457的博客 303

算法-找出1出现的个数

1到n整数中1出现的次数 题目:获取从1到n整数中1出现的次数,如n=13,则1,10,11,12,13中出现1的次数总共为6,则返回6 一、暴力求解 //遍历每个数字的每个位 public class Solution { public int NumberOf1Between1AndN_Solution(int n) { int count = 0; for(int i = n; i >= 1; i--) { for(int j =

qq_45100361的博客 495

数组中超过出现次数一半的数字 【微软面试100题 第七十四题】

问题要求:   数组中有一个数字出现的次数超过了数组长度的一半,找出个数字。   参考资料:编程之美2.3 寻找发帖水王 问题分析:   方法1 对数组排序,然后顺次查找其中最多的;   方法2 对数组排序,最中间一个肯定为要找的数字,时间复杂度O(NlogN);   方法3 每次消去数组中两个不同的数,最后剩下的肯定为要找的数字,时间复杂度O(N).

tractor_man的专栏 874

微软面试100题2010年版全部答案集锦(含下载地址)

微软等数据结构+算法面试100题全部答案集锦 作者:July、阿财。 时间:二零一一年十月十三日。 引言      无私分享造就开源的辉煌。      今是二零一一年十月十三日,明日14日即是本人刚好开博一周年。在一周年之际,特此分享出微软面试全部100题答案的完整版,以作为对本博客所有读者的回馈。      一年之前的10月14日,一个名叫July (头像为手冢国光)

落日小屋 2203

微软面试题:快速寻找满足条件的两个数

这同样是博主在面试 Microsoft 时遇到的面试题,只是当时博主没有答好,惭愧... 问题描述很简单,给出一个 int 类型的数组,能否快速找出数组中的两个数字,使它们的和等于一个给定的值 即,给出数组 假定给定两数只和 SUM 为15 那么我们需要找到的分别是 (8, 7),(4, 11),(9, 6) 首先当我被问到这个问题的时候,我首先想到的就是穷举法,即遍历整个数组的所有

进击的程序员 833

对一道微软面试题的思考

在论坛上,我看到大家在讨论一道微软面试题:有100万个数字(1到9),其中只有1个数字重复2次,如何快速找出该数字。大家讨论的很激烈,也给出了很多的算法。 lthyxy同学的算法是:扫描一遍做计数,然后看那个数的计数器是2。程序如下: int num[10] =

学无止境 1884

升序数组中查找个数,使得它们的和正好是输入的那个数

微软面试题,难度系数低,题目描述如下: 题目:输入一个已经按升序排序过的数组和一个数字,  在数组中查找个数,使得它们的和正好是输入的那个数字。  要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。  例如输入数组1、2、4、7、1115 和数字15。由于4+11=15,因此输出4 和11。  逻辑分析: 1、针对一个元素相对少的数组,第一想

pediy_yuhan的专栏 1830

微软字符串面试题(转)

微软字符串面试题(转)<br /><br />题目:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输 入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。<br />分析:这是一道微软面试题。在微软的常见面试题中,与字符串相关的题目占了很大的一部分,因为写程序操作字符串能很好的反映我们的编程基本功。<br />要编程完成这道题要求的功能可能并不难。毕竟,这道题的基本思路就是在第一个字符串中拿到一个字符,在第二个字符

dragon810913的专栏 719

微软面试题

http://blog.csdn.net/zajin/article/details/8556614

liuyinghui523的专栏 4154

微软面试题总结

一面: 1. 反转单链表 2. 剑指offer 第一题 二维数组查找(二分优化) 3. leetcode1314 二面: 一个逗号分割的csv文件 转化成二维矩阵 考虑各种情况(双引号里有双引号,一行没有正常结束等) 状态机 三面: 文件1有两列,p和k string 类型,用\t隔开 文件2有两列,p1,p2,,,,pn和k1,k2,,,,kn 每列多个字符串用,隔开,两列用\t隔开 输出文件2中包含文件1行的所有行 哈希建索引 四面: 项目问题 剑指...

wwxy1995的博客 1407

微软面试题:有100万个数字(1到9),其中只有1个数字重复2次,如何快速找出该数字

/******************************************************************************* 文 件 名 : test100.cpp 实现功能 : 微软面试题: 有100万个数字(1

jernymy的专栏 1万+

算法面试 精选微软经典的算法面试100题(第1-20题)

算法面试 精选微软经典的算法面试100题(第1-20题)

gdfyug的博客 1080

[答案V0.2版]精选微软等数据结构+算法面试100题[1-20]

原文地址:[答案V0.2版]精选微软等数据结构+算法面试100题[1-20]作者:叛逆年少                  精选微软等数据结构+算法面试100题                             --答案公布   ------- 我很享受思考的过程,个人思考的全部结果,都放在了这篇帖子上, [整理]精选微软等数据结构+算法面试100题 现在,我要,好好整理

hu330459076的专栏 1617
上一篇: 使用CDialogBar的步骤
下一篇: core java 中的sketch小游戏
ZiSheng
博客等级 码龄19年 83粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值