题目
代码
# include <iostream>
# include <vector>
# include <algorithm> using namespace std;
int calculatePersistence ( int number)
{ int persistence = 0 ; while ( number >= 10 ) { int product = 1 ; while ( number > 0 ) { product *= ( number % 10 ) ; number /= 10 ; } number = product; persistence++ ; } return persistence;
} int main ( ) { int a, b; cin >> a >> b; int maxPersistence = 0 ; vector< int > longestNumbers; for ( int i = a; i <= b; ++ i) { int persistence = calculatePersistence ( i) ; if ( persistence > maxPersistence) { maxPersistence = persistence; longestNumbers. clear ( ) ; longestNumbers. push_back ( i) ; } else if ( persistence == maxPersistence) { longestNumbers. push_back ( i) ; } } cout << maxPersistence << endl; for ( int i = 0 ; i < longestNumbers. size ( ) ; ++ i) { if ( i > 0 ) cout << " " ; cout << longestNumbers[ i] ; } cout << endl; return 0 ;
}
总结
longestNumbers.clear(); // 清空之前存储的数字 longestNumbers.push_back(i); //在尾加