有一個整數n,寫一個函式f(n),返回0~n之間出現的“1”的個數,例如f(1)=1; f(13)=6(1,10,11,12,13一共6個1),最大的f(n)=n的n是多少
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
public class learn {
public static int jj = 0;
public static void main(String args[]){
int n =2;
int res=1;
while(getarray(n)+res!=n){
res= res+getarray(n);
n++;
}
System.out.println(n+"----------"+getarray(n)+res);
}
public static int getarray(int n){
int num=0;
String hh = n+"";
for(int i=0;i<hh.length();i++){
if(hh.charAt(i)=='1'){
++num;
}
}
return num;
}
}
相關推薦
有一個整數n,寫一個函式f(n),返回0~n之間出現的“1”的個數,例如f(1)=1; f(13)=6(1,10,11,12,13一共6個1),最大的f(n)=n的n是多少
import java.util.Arrays; import java.util.LinkedList; import java.util.List; public class learn { public static int jj = 0; public sta
寫出一個函式,返回0-20之間的隨機整數
直接看程式碼。 function suiji(){ var a= Math.floor(Math.random()*21); // Math.random() 返回 大於或等於0 且 小於1 的小數,
輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下4 X 4矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,
public ArrayList<Integer> printMatrix(int [][] matrix) { ArrayList<Integer> l1= new ArrayList<>(); &
判斷String字串中是否有連續的數字,有連續的就縮寫(比如:String str="1,2,3,7,10,11,12,13,14,15" 變為"1-3,7-7,10-15")
string newList=""; string str="1,2,3,7,10,11,12,13,14,15";//string字串 int min; int max; if (str!=null&&str
java 輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,
題目描述 輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,
輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 則依次打印出數字1,2,3,4,8
import java.util.ArrayList; import java.util.Arrays; public class Solution { public ArrayList<Integer> printMatrix(int [][] mat
在O(n)時間復雜度內求無序數組中任意兩個元素的最大差值,以及存在的組數
== result scan span pub ger oid 最小值 lose 題目描述: 求無序數組中任意兩個元素的最大差值,以及存在最大差值的組別數. 輸入: 輸入包含兩行,第一行輸入一個整數n;第二行n個正整數,用空格隔開. 輸出: 輸出為一行,包含最大差值,以及存
合唱團 N個學生中選K個,相鄰兩個的位置編號不超過D,使得K個學生乘積最大
網易2016內推筆試題: 有 n 個學生站成一排,每個學生有一個能力值,從這 n 個學生中按照順序選取 k 名學生,要求相鄰兩個學生的位置編號的差不超過 d,使得這 k 個學生的能力值的乘積最大,返回最大的乘積。 每個輸入包含 1 個測試用例。每個測試資料的第一行包含一個整
上億個資料儲存在硬碟中,找出最大的N個。
(1)先選N個元素組成一個小根堆,然後遍歷剩下的資料,如果第i個元素M大於小根堆的根結點,就刪除這個根結點,並將元素M插入這個小根椎,最後,小根堆中的元素就是最大的N個元素。 (2)只要開闢一個稍微大一點的緩衝區存放大於某選定值的資料即可,當緩衝滿時,重新整理選定值為緩衝區
儲存最後N個元素,找到最大或者最小的N個元素特殊佇列deque,heapq模組--cookbook讀書筆記
1. 特殊的佇列collections.deque,儲存最後N個元素儲存有限的歷史記錄可算是collections.deque的完美應用場景了。deque與list的區別是:deque初始化的時候可以規定佇列大小,超過預定大小,新加入的元素會擠掉最早進入的元素;deque不僅
列印1到最大的n位數:大數問題,全排列實現
題目: 輸入數字n,按順序打印出從1到最大的n位十進位制數。比如,輸入3,則打印出1,2,3,…..,一直到最大的3位數即999。 劍指offer上的題目,典型的大數加法問題,無論是in
劍指Offer之打印從1到最大的n位數
一位 數字 print digi mic boolean 基本 個數 recursive 基本思路 第一種方法:當我們只有對9999或者999或者99或9加1的時候,才會在第一個數字的基礎上產生進位,而其他所有情況都不好在第一個數字上產生進位。因此當我們發現在加1的時候
c++用priority_queue實現最小堆,並求解最大的n個數
輸出 return bool rand cto and gre main 最小堆 1 //c++用priority_queue實現最小堆,並求解很多數中的最大的n個數 2 #include <iostream> 3 #include <queue&
【劍指offer】17、打印從1到最大的n位數
++ lse style ret char bsp 大數問題 要求 dig 題目 輸入數字n,按順序打印從1到最大n位的十進制數。比如輸入3,打印1到999。 思路 輸入的數字可以很大,可以是33,65,這樣的話int和long long都不能滿足題目要求,所以這是一個大數
面試題12:列印1到最大的n位數
如輸入3,輸出1到999 注意,此題不能簡單的用整型儲存最大位數,因為可能會溢位,也就是說,我們需要考慮大數問題。 public static void print1ToN(int n){ List<Integer> list=new ArrayList
QT 一個簡單的寫日誌函式
void LG(QString strFileName,QString strMsg) { if(strFileName.isEmpty() || strMsg.isEmpty()) return; // 開啟一個檔案 QFile file(strFileNa
判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。
判斷一個數是否能被另一個整數整除是一個挺簡單的問題,一般一個模運算就可以搞定了,懶惰的曉萌還是不想自己做,於是找到你幫他寫程式碼,你就幫幫他吧。 輸入格式 輸入包括兩個由空格分開的整數 M 和N(1≤M,N≤500)。 輸出格式 輸出包括一行,如果 M 可以被 N 整除就
C程式設計——程式設計實現查詢兩個字串的最大公共子串1.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 **2、**程式 #include <stdio.h> #include <string.h>
編寫程式,獲取兩個字串中最大相同子串
private void test() { String a = "Valaienie"; String b = "Maierginle"; String max = a.length() > b.length() ? a : b; String min =
面試題17:列印從1到最大的n位數
一、題目: 輸入數字n,按順序列印從1到最大的n位的十進位制數。比如輸入3,則打印出1、2、3一直到最大的3位數999 1.1 解法 兩種不同的方法解決這個問題: 1、是字串上模擬數字加法,用字串表達大數 2、使用全排列遞迴呼叫 二、字串上模擬加法 2.1 思想: 用