SRM446 DIV2
#include <iostream> #include <cmath> using namespace std; class SoldierLabeling{ public: int len(int number) { int sum = 1; while (number >= 10){ sum ++; number /= 10; } return sum; } int count(int n, int lowerBound, int upperBound) { int sum = 0; int i = (int)pow((double)10, (double)lowerBound-1); cout << i << endl; for (i; i <= n; i++){ int m = len(i); if (m >= lowerBound && m <= upperBound){ sum ++; } } return sum; } };
速度って大事ですね。
最初はstringに変換して数字の大きさを求めるなんてことしてたんで超遅くてはじかれました。