題目
題目描述
試計算在區間 1 到 n 的所有整數中,數字 x(0 ≤ x ≤ 9)共出現了多少次?例如,在 1 到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,數字 1 出現了 4 次。
示例輸入描述:
輸入共 1 行,包含 2 個整數 n、x,之間用乙個空格隔開。
其中,1≤ n ≤ 1000000,0 ≤ x ≤ 9。
例如:樣例輸入:
11 1
輸出描述:
輸出共 1 行,包含乙個整數,表示 x 出現的次數。
例如:對應輸出:
4總結
我之前也遇到過這種問題,就是直接用了迴圈題裡面的變數來進行運算,但始終搞不懂為什麼不行,今天,總算搞清楚了。
因為i第一次就以i=1進來,然後進入內迴圈體(while)後就變成了i=0,然後又去進行外迴圈體(for)的i++,
然後i就又用i=1的身份進來,就又進行一次和上回一樣的迴圈,這就成為只有count在累加其他數字沒有在變的死迴圈了。
因此,用於記錄迴圈次數的i不應該在迴圈內被改變,我們要在進入while前,把i給另乙個變數,比如 int j=i; ,然後在while內使用變數j去進行運算。
而我在進行思考和除錯的時候,雖然for和while都是迴圈,但因為for然後int i在之前一直在用它控制次數控制次數,所以找錯誤的時候一直關注於while裡面變數的值
然後注意力都在while迴圈,而忽略了要結合for迴圈來看**的問題,半天找不到錯。
總感覺沒有人會犯跟我一樣笨的錯誤…最後把printf輸出放裡面找錯確實是個不錯的方法嘿嘿,看來看書腦子還是進去了點東西_(:з」∠)_
這道就是換湯不換藥的字數統計!
pass**
#include
intmain()
}printf
("%d"
,count)
;return0;
}
錯誤**(死迴圈)
#include
intmain()
}printf
("%d"
,count)
;return0;
}
藍橋杯訓練day3
問題 1102 明明的隨機數 時間限制 1sec 記憶體限制 128mb 提交 2182 解決 935 題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 100 對於其中重複的數字,只保留乙個,把其餘相同的數去掉,不同的數對...
藍橋杯練習day3
1.試題 基礎練習 十進位制轉十六進製制 問題描述 十六進製制數是在程式設計時經常要使用到的一種整數的表示方式。它有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f共16個符號,分別表示十進位制數的0至15。十六進製制的計數方法是滿16進1,所以十進位制數16在十六進製制中是10,而十...
藍橋杯試題 演算法提高 計數問題
資源限制 時間限制 1.0s 記憶體限制 128.0mb 問題描述 試計算在區間 1 到 n 的所有整數中,數字 x 0 x 9 共出現了多少次?例如,在 1到 11 中,即在 1 2 3 4 5 6 7 8 9 10 11 中,數字 1 出現了 4 次。輸入格式 輸入檔名為 count.in。輸入...