google的一道面试题!(附我的解法)

原创 2006年05月23日 19:10:00

  Consider a function which, for a given whole number n, returns the number of ones required when writing out all numbers between 0 and n.

  For example, f(13)=6. Notice that f(1)=1. What is the next largest n such that f(n)=n?

  翻译过来大体是这样:
  有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。比如f(13)=6,现在f(1)=1,问下一个最大的f(n)=n的n是什么?

我是用C写的,原题要求用java,其实无所谓了,欢迎大家指点:

#include <cstdio>
#include <iostream>

using namespace std;

int F(int num)
{
 int total = 0;
 int one = 1;
 int k = 0;
 for(;num/one!=0; one=one*10, k++);

  int A = 0;
 int B = 0;
 int C = 0;
 int D = 0;
 int E = 0;

 int two = one/10;

 for(; k>0; k--)
 {
     A = num/one;
    B = num%two;
    C = num/two;

    E = C - D*10;
    D = C;

     if (E > 1)
    {
     total += A*two + two;
    }
    else if (E == 1)
    {
     total += A*two + B + 1;
    }
    else if (E == 0)
    {
     total += A*two;
    }

   one = one/10;
    two = two/10;
 }

 return total;

}

int main()
{
   int num;
   while(true)
   {
 
   cout << "Enter: ";
   cin >> num;

   cout << "The total is :" << F(num) << endl ;

  } 

   return 0;
}

 

 

Google面试题之设计一个包含min函数的栈

定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min,push,以及pop的时间复杂度都是O(1)。算法思想:考虑增加一个辅助的堆栈,每次往原堆栈push数据时,同时将最小数...
  • sinat_33442459
  • sinat_33442459
  • 2017年04月28日 11:00
  • 188

【算法】一道有趣的GOOGLE面试题 --【解法2】

int Repeat(int *a, int n) { for(int i = 0; i < n; i++) { if(a[i] > 0) //判断条件 { if(a[ a[i] ]...
  • locky1218
  • locky1218
  • 2014年10月06日 19:51
  • 386

解读google的一道面试题

这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来...
  • u010064842
  • u010064842
  • 2013年09月15日 21:18
  • 1140

Google的一道面试题

http://blog.csdn.net/jiaomeng/archive/2006/12/08/1435226.aspx 这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层...
  • printf_mylife
  • printf_mylife
  • 2014年02月20日 17:01
  • 360

一道 Google 的面试题

一道谷歌面试题,一步步进行剖析,由浅入深,并用 Python 进行了编码实现。...
  • lansebolangcjl
  • lansebolangcjl
  • 2017年08月01日 12:13
  • 107

一道面试题:140个google面试题

FROM:酷壳 来源:http://blog.seattleinterviewcoach.com/2009/02/140-google-interview-questions.html(墙) ...
  • wdzxl198
  • wdzxl198
  • 2013年05月14日 09:30
  • 1905

web前端一道很“坑”的js面试题

f = function() {return true;}; g = function() {return false;}; (function() {if (g() && [] == ![]) ...
  • k358971707
  • k358971707
  • 2017年02月23日 22:28
  • 911

解答Google的一道面试题

首先对博主的独立思考和专研精神表示膜拜! 转载地址:http://blog.csdn.net/jiaomeng/article/details/1435226   在找大规模数据处理的相关...
  • fbz123456
  • fbz123456
  • 2016年03月16日 21:36
  • 220

解答Google的一道面试题

这几天有一道Google的面试题在论坛炒得很火,题目如下:“有一个100层高的大厦,你手中有两个相同的玻璃围棋子。从这个大厦的某一层扔下围棋子就会碎,用你手中的这两个玻璃围棋子,找出一个最优的策略,来...
  • youwuwei2012
  • youwuwei2012
  • 2014年04月10日 17:56
  • 357

一道有趣的GOOGLE面试题

最近在微博上看到一道有趣的GOOGLE面试题,见下图: 文字版: 一个大小为n的数组,里面的数都属于范围[0, n-1],有不确定的重复元素,找到至少一个重复元素,要求O(1)空间和O(n...
  • wustzbq0713
  • wustzbq0713
  • 2015年01月26日 20:30
  • 159
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:google的一道面试题!(附我的解法)
举报原因:
原因补充:

(最多只允许输入30个字)