1. 前言
有时候求解OJ算法题,会遇到多样例测试的情况,而且样例之间的求解过程有重复,则我们可以使用打表技巧,将求解过的样例结果(或者所有可能需要用到的结果)事先计算并存储下来,称之为打表
。
然后,每当求解一个样例时,即可直接取出结果,当样例数较多时,则可以节省大量不必要的重复。
2.例子
2.1 生成元
原题链接:UVa1583
题解
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
const int MAXN = 100010;
int book[MAXN];
int main() {
// 先进行打表,且生成元不为0
for (int i = 1; i < MAXN; i++) {
int sum = i, tmp = i;
while (tmp) {
sum += (tmp%10);
tmp /= 10;