Number of Digit One

原创 2015年07月08日 01:29:01

Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.

For example:
Given n = 13,
Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.

class Solution {
public:
    int countDigitOne(int n) {
        if (n <= 0) 
        {
            return 0;
        }
        int curr = n, right = 0, result = 0;
        while (curr > 0)
        {
            if (curr%10 > 1)
            {
                result += (curr/10+1)*pow(10, right);
            }
            else if (curr%10 == 1)
            {
                result += (curr/10)*pow(10, right) + n%int(pow(10, right)) + 1;
            }
            else
            {
                result += (curr/10)*pow(10, right);
            }
            curr /= 10; 
            right++;
        }
        return result;
    }
};


leetcode 233: Number of Digit One

leetcode 233: Number of Digit One java python c++
  • xudli
  • xudli
  • 2015年07月08日 07:53
  • 14290

233 - Number of Digit One

Number of Digit One  Total Accepted: 307 Total Submissions: 1853 Given an integer n, count th...
  • wangyunyun00
  • wangyunyun00
  • 2015年08月07日 18:03
  • 1671

Number of Digit One -- leetcode

Given an integer n, count the total number of digit 1 appearing in all non-negative integers less th...
  • elton_xiao
  • elton_xiao
  • 2015年09月19日 21:04
  • 348

HDU 1041.Computer Transformation【递推+高精】【12月27】

Computer Transformation Problem Description A sequence consisting of one digit, the number 1 is i...
  • a995549572
  • a995549572
  • 2015年12月27日 13:24
  • 315

LeetCode-Number of Digit One-解题报告

原题链接 https://leetcode.com/problems/number-of-digit-one/ Given an integer n, count the total numbe...
  • dd523762588
  • dd523762588
  • 2015年07月09日 14:04
  • 1168

杭电ACM 1041 Computer Transformation java代码详解AC

Computer Transformation Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java...
  • wangyang1354
  • wangyang1354
  • 2015年11月04日 13:31
  • 956

leetCode_Number of Digit One

题意:给一个数,返回小于这个数的正整数中含1的个数 解法:如果这个数小于等于0,返回0。            如果这个数大于0,我们就得按照每个位来判断。比如数字1159,个位上为1的数就有0001...
  • XiaYiZhanQiHang
  • XiaYiZhanQiHang
  • 2016年09月30日 17:33
  • 117

剑指offer 面试题32:从1到n整数中1出现的次数(leecode233. Number of Digit One) 题解

剑指offer 面试题32:从1到n整数中1出现的次数(Leecode233. Number of Digit One) 提交网址: http://www.nowcoder.com/prac...
  • yanglr2010
  • yanglr2010
  • 2016年05月04日 00:47
  • 1153

E - 这题有点难(就是算1变成01,0变成10)

E - 这题有点难 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit St...
  • shi201619616
  • shi201619616
  • 2017年07月10日 18:34
  • 214

poj 2680 Computer Transformation (dp+高精度)

Computer Transformation Time Limit: 1000MS   Memory Limit: 65536K Total Submissions:...
  • clover_hxy
  • clover_hxy
  • 2016年10月25日 15:12
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Number of Digit One
举报原因:
原因补充:

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