版權聲明:本文為部落客chszs的原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chszs/article/details/1524679
面試算法題1
在論壇看到有人提問,由于沒有儲存文章路徑,到處找了一下,沒找到。幹脆就放到blog上。
/*
* 有一個整數n,寫一個函數f(n),傳回0到n之間出現的"1"的個數。
* 比如f(13)=6,現在f(1)=1,問下一個最大的f(n)=n的n是什麼?
* writed by chszs
*/
package myApp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Mymethod1 {
private static String str=null;
private static Integer n=0;
private static int totalOne=0;
public static void main(String[] args) throws IOException{
System.out.println("請輸入一個整數:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
n=Integer.valueOf(br.readLine());
for(Integer i=n;i>0;i--){
totalOne=totalOne+Fn(i);
}
System.out.println("函數f(n)從0到n之間出現的'1'的個數為:"+totalOne);
}
public static int Fn(Integer a){
char[] re=a.toString().toCharArray();
int le=re.length;
int num=0;
for(int i=0;i<le;i++){
if(re[i]=='1'){
num++;
}
return num;
}