[Проблема] вычисляется количество раз, возникающих целое число от 1 до 13 1, и вычисляет количество раз целое число от 100 до 1300 в 1 происходят? С этой целью он прежде всего насчитал около 1 до 13 содержит цифры 1 имеют 1,10,11,12,13 поэтому появляется в общей сложности шесть раз, но проблемы позади него Meizhe. ACMer надеется, что вы поможете ему, и эта проблема является более обобщенной, число неотрицательного целого числа в диапазоне появляется 1 (число вхождений от 1 до п. 1) можно быстро найти.
[Мышление] просто написать простую идею и насилие, мы первым использовать функцию для подсчета количества каждого номера 1, а затем пройти через каждый номер от 1 до п, а затем добавить номер 1 всех статистических данных, а именно: Полученные результаты! Другие идеи слишком завелись, кто-то будет иметь эти цифры становятся строками статистика не понимает!
класс решений { общественности : INT GetNum ( INT Num) { INT разреш = 0 ; в то время как (число =! 0 ) { если (NUM% 10 == 1 ) { разреш ++ ; } Num / = 10 ; } Вернуть Рез; } INT NumberOf1Between1AndN_Solution ( INT п) { если (п < 1 ) возвращение 0 ; INT кол = 0 ; для ( INT I = 1 ; г = п +! 1 ; я ++ ) { кол + = GetNum (I); } Вернуться рассчитывать; } };