1. 程式人生 > >求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。

求出1~13的整數中1出現的次數,並算出100~1300的整數中1出現的次數?並把問題更加普遍化,可以很快的求出任意非負整數區間中1出現的次數。

public class Solution {
    public int NumberOf1Between1AndN_Solution(int n) {
        int count=0;//計數
     if(n < 0){
         //負數
         return 0;
     }
      for(int i=0;i<=n;i++){
          String digit=i+"";
          char[] chars=digit.toCharArray();
          for(int j=0;j<chars.length;j++){
              if(chars[j]=='1'){
                  count++;
              }
          }
      }
        return count;
    }
}

相關推薦

ACMer希望你們幫幫他,問題更加普遍,可以很快任意整數區間1出現次數(從1 到 n 1出現次數

/* 思路:(這裡不僅僅侷限於1,其他數字也是相通的) 找規律,當計算右數第  i  位包含的 X 的個數時: 取第  i  位左邊(高位)的數字,乘以  10 i−1 ,得到基礎值  a 。 取第  i  位數字,計算修正值: 如果大於 X,則結果為  a+ 10 i

將給定整數列表的數字排列成最大數字的2種方法例如,給定[50,2,1,9],最大數字為95021

一、題目簡介 編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。例如,給定[50,2,1,9],最大數字為95021。 此處以如下陣列為例:Integer[] num=new Integer[]{51,9,370,82,4,796}; 二、例項程式碼 1、方法一: /

LeetCode 給定一個整數 num對於 0 ≤ i ≤ num 範圍的每個數字 i ,計算其二進位制數1 的數目將它們作為陣列返回

/**  * Return an array of size *returnSize.  * Note: The returned array must be malloced, assume caller calls free().  */ int* countBit

寫一個遞迴函式DigitSum(n),輸入一個整數,返回組成它的數字之和, 例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19

#include <stdio.h> #define _CRT_SECURE_NO_WARNINGS 1 int DigitSum(int i) { int sum = 0; int j = 0; if (i != 0) { j = i % 10; i = i /

[LeetCode] Non-negative Integers without Consecutive Ones 整數不包括連續的1

Given a positive integer n, find the number of non-negative integers less than or equal to n, whose binary representations do NOT contain consecutive one

1.5程式設計基礎之迴圈控制 9. 描述 計算整數 m 到 n(包括m 和 n )之間的所有奇數的和

描述計算非負整數m到n(包括m和n)之間的所有奇數的和,其中,m不大於n,且n不大於300.例如m = 3,n = 12,其和則為:3+ 5 + 7 + 9 + 11 = 35。輸入兩個數m和n,兩個數

【Python】收集雨水問題:給定n個整數,表示直方圖的方柱的高度,同時,每個方柱的寬度假定都為1若使用這樣形狀的容器收集雨水,可以盛多少水量?

收集雨水問題 給定n個非負整數,表示直方圖的方柱的高度,同時,每個方柱的寬度假定都為1。若使用這樣形狀的容器收集雨水,可以盛多少水量? 如輸入:0,1,0,2,1,0,1,3,2,1,2,1;返回6。 題目來源 分析思路:

Leetcode 600.不包含連續1整數

這一 pan -a bubuko 轉移 for har inf 例子 不包含連續1的非負整數 給定一個正整數 n,找出小於或等於 n 的非負整數中,其二進制表示不包含 連續的1 的個數。 示例 1: 輸入: 5 輸出: 5 解釋: 下面是帶有相應二進制表示的非負整

編寫一個能將給定整數列表的數字排列成最大數字的函式

//編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。例如,給定[50,2,1,9],最大數字為95021。 public class Test4{ public static void main(String[] args){ int[] list={85,840,860,760,9

給定一個整數陣列,最初定位在陣列的第一個索引處的每個元素表示您在該位置的最大跳躍長度最小跳數

本題源自leetcode  45 ------------------------------------------------------------------------- 思路:用倆個 變數標識當前的位置  和 下一步能調到最遠的位置。 程式碼: int jum

編寫一個能將給定整數列表的數字排列成最大數字的程式

問題描述:例如,給定[50,2,1,9],最大數字為95021 問題分析:將輸入的數字進行排列組合,使得最終得到的整數是最大的 問題實現需要注意 因為需要提取數列中每個數字的首位,並能夠和本

給定一列整數,這些數連線起來能組成的最大的數

題目是這樣的: 程式碼是這樣的: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scann

代碼題(2)— 統計所有小於整數 n 的質數的數量

code 整數 color () res size result bool rime   質數也叫素數,只能被1和它本身整除的。   利用篩選法。 class Solution { public: int countPrimes(int n) {

給定兩個空連結串列來表示兩個整數位數按照逆序方式儲存,它們的每個節點只儲存單個數字將兩數相加返回一個新的連結串列

題目描述: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 思路: 1.定義連結串列類 2.建立兩個數的連結串列表示物件 3.傳入函式實現相加:每一位相加,設

給定一個整數 num,反覆將各個位上的數字相加,直到結果為一位數

示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於2是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎?   class Solution {  

計算位數最高達300位的兩個整數的乘積,C語言程式設計實現

-------世界太蕪雜,我幫你整理---- -------C語言大數相乘運算---------- 今天我們要程式設計實現的是兩個超長整型資料進行相乘,並輸出結果 比如: 2134897427972647678 * 3497892374 我們先來看看執行效果

遞迴函式DigitSum(n),輸入一個整數,返回組成它的數字之和

例:呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19 程式碼: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Add(

隨筆-給定兩個字串形式的整數 num1 和num2 ,計算它們的和

題目:給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和。 注意: num1 和num2 的長度都小於 5100. num1 和num2 都只包含數字 0-9. num1 和num2 都不包含任何前導零。 你不能使用任何內建 BigInteger 庫, 也不能直接將