1 представляет собой целое число от 1 до п

[Проблема] вычисляется количество раз, возникающих целое число от 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); 
        } 
        Вернуться рассчитывать; 
    } 
};

 

рекомендация

отwww.cnblogs.com/zhudingtop/p/11362458.html