1. 程式人生 > 其它 >藍橋杯2019年第十屆JavaB組真題題目+解析+程式碼+答案:6.特別數的和

藍橋杯2019年第十屆JavaB組真題題目+解析+程式碼+答案:6.特別數的和

技術標籤: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); } }