Task 10 找1的个数

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

要求: 写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数。例如 f(12) = 5。 在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少。

时间: 2024-08-09 10:38:01

Task 10 找1的个数的相关文章

Java-寻找矩阵连通域个数

给定一个矩阵,寻找连通域个数:前后左右相同为连通 ex: 0 1 0 1 0 1 1 1 0 0 1 0 0 1 0 0 输出2 利用深度搜索思路: 1 public static int getCount(int[][] A) { 2 int result = 0; 3 for (int i = 0; i < A.length; i++) { 4 for (int j = 0; j < A[0].length; j++) { 5 if (A[i][j] == 1) { 6 result++;

[面试题]在数组中找出3个数使得它们和为0

给定一个数组S,试找出3个数a, b, c,使得a+b+c=0.也即从集合中找出所有的和为0的3个数. 例如:集合S={-1,0, 1, 2, -1, 4},则满足条件的3个数有2对:(-1, 0, 1)和(-1, 2, -1).注意(-1,1,0)与(-1,0,1)算同一个解,所以不用重复考虑. 当然该例子集合的解也可以写成:(0, 1, -1)和(2, -1, -1). 参考了:http://blog.csdn.net/wangran51/article/details/8858398,他给

有两个变量a和b,不用“if”、“? :”、“switch”或其他判断语句,找出两个数中比较大的

1.问题 There are two int variables: a and b, don't use "if"."? :"."switch" or other judgement statement, find out the biggest one of the two numbers. (有两个变量a和b,不用"if"."? :"."switch"或其他判断语句,找出两个数中比较

【c语言】给一组数,只有一个数只出现了一次,其他所有数都是成对出现的。找出这个数

// 给一组数,只有一个数只出现了一次,其他所有数都是成对出现的.找出这个数 #include <stdio.h> int find_one(int arr[], int len) { int i = 0; int ret = 0; for (; i < len; ++i) { ret ^= arr[i]; } return ret; } int main() { int arr[] = { 1, 2, 3, 4, 1, 2, 3 }; printf("%d\n",

leetcode 1: 找出两个数相加等于给定数 two sum

问题描述 对于一个给定的数组,找出2个数,它们满足2个数的和等于一个特定的数,返回这两个数的索引.(从1开始) Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target,

找出n个数中重复最多的10个数

题目很清晰,直接上python代码 import pandas as pd import copy class BenchMark: def __init__(self): self.MIN = 10000 self.data = 0 def Reset(self): self.MIN = 10000 self.data = 0 dictCounts = {} dictTop10_D2C = {} BENCH_MARK = BenchMark() LAST_BENCH_MARK = BenchM

【转】已知一个数出现的次数严格超过了一半,请用O(n)的复杂度的算法找出这个数

原文转自:http://blog.csdn.net/zhq651/article/details/7930284 方法1:既然过半,那么用这个数与其他数配对的话,剩余的数字一定还是过半的这个数字.因此可以通过不断删除不同的2个数,直到没有不同的2个数,那么这个数就是要找的数.证明:最坏情况下,只有这个数同别的数配对,并且被删除,剩下的仍旧是这个数,因此得证. 转自:http://www.cnblogs.com/python27/archive/2011/12/15/2289534.html 例:

找“1”的个数

一.题目: 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数.要求: 1.写一个函数 f(N) ,返回1 到 N 之间出现的“1”的个数.例如 f(12)  = 5.2.在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.设计思想. 分别算出每一位上1出现的次数,再加起来就是总的次数. 三.源程序 #include<iostream.h> #include<math.h> int main() { int num,a[10],

课堂练习之找“1”的个数

一.题目 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数出其中1的个数. 二.要求 1.写一个函数F(N),返回1~N之间出现“1”的个数,例如:F(12)=5; 2.在32位整数范围内,满足条件的“F(N)=n”的最大的N是多少; 三.思路 情况1:如果百位上的数字为0,则可以知道百位上可能出现1的次数由更高位决定,比如12 013,则可以知 道百位出现1的情况可能是100-199,1 100-1 199,……,11 100-11 199,一共有1 200个.也就是 由更高位数字