藍橋杯2019年第十屆JavaB組真題題目+解析+程式碼+答案:6.特別數的和
阿新 • • 發佈:2020-12-07
技術標籤:2019第十屆省賽-javaB組-題目+題解字串python資料結構演算法正則表示式
不要自卑,去提升實力
網際網路行業誰技術牛誰是爹
如果文章可以帶給你能量,那是最好的事!請相信自己
加油o~
點選下面連結
藍橋杯歷屆真題題目+解析+程式碼+答案(2013-2020)(JavaA、B、C組)
問題描述:
小明對數位中含有 2、0、1、9 的數字很感興趣(不包括前導 0) ,在 1 到
40 中這樣的數包括 1、2、9、10 至 32、39 和 40,共 28 個,他們的和是 574。
請問,在 1 到 n 中,所有這樣的數的和是多少?
【輸入格式】
輸入一行包含兩個整數 n。
【輸出格式】輸出一行,包含一個整數,表示滿足條件的數的和。
【樣例輸入】
40
【樣例輸出】
574
【評測用例規模與約定】
對於 20% 的評測用例,1 ≤ n ≤ 10。
對於 50% 的評測用例,1 ≤ n ≤ 100。
對於 80% 的評測用例,1 ≤ n ≤ 1000。
對於所有評測用例,1 ≤ n ≤ 10000。
解題思路:
> 輸入一個n,可以依次遍歷每一個數字
> 將它轉換成字串
> 利用字串的內建函式,判斷
> indexOf(String str) 如果該字串不存在,返回-1,否則返回該點下標
程式碼:
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int sum=0;
int n=sc.nextInt();
for(int i=1;i<=n;i++) {
if((i+"").indexOf("2")!=-1||(i+"").indexOf("0")!=-1||(i+"").indexOf("1")!=-1||(i+"").indexOf("9" )!=-1) {
sum+=i;
}
}
System.out.println(sum);
}
}