某招聘现场,负责发号的工作人员给应聘者发放面试序号。当发到 10^n 号的时候,才发现打号机不能打出数字 “4”. 工作人员想纠正错误,但首先要知道出现错误的序号有多少个,请编写程序来解决.
注意n小于等于1000,运行时间在一秒以内
到底该怎样才能保证运行时间不长呢?
某招聘现场,负责发号的工作人员给应聘者发放面试序号。当发到 10^n 号的时候,才发现打号机不能打出数字 “4”. 工作人员想纠正错误,但首先要知道出现错误的序号有多少个,请编写程序来解决.
注意n小于等于1000,运行时间在一秒以内
到底该怎样才能保证运行时间不长呢?
```c++
#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
int main() {
using namespace boost::multiprecision;
cpp_int count = 0;
cpp_int powerOfTen = 1;
for (int i = 1; i <= 1000; i++) {
powerOfTen *= 10;
count += powerOfTen;
}
std::cout << "出现错误的序号个数:" << count / 10 << std::endl;
return 0;
}
```