#include #include #include #include #include #include #include #include #include using namespace std; struct toy { int name; int data; toy* next; }; toy* getNode(int name,int data) {// toy* p = new toy; p->name = name; p->data = data; p->next = nullptr; return p; } void addToLastList(toy*& pH, int name,int data) { if (pH == nullptr) { toy* p = getNode(name,data); pH = p; return; } toy* cur = pH; while (cur->next != nullptr) cur = cur->next; toy* p = getNode(name,data); cur->next = p; } int recursive(int value) { if (value == 0) return 0; if (value < 0) value = abs(value); /* Vd1: 12345 → result = -1+2-3+4-5. Vd2: 789374 → result = -7+8-9+3-7+4.*/ int p = ceil(log10(value))-1, a = value / pow(10, p); return -a + (-1)*recursive(value - a * pow(10, p)); } toy* creatList(int n, int value) { toy* pH = nullptr; for (int i = 0; i < n; ++i) { int x = recursive(value + i+1); addToLastList(pH, i+1, x); } return pH; } void showList(toy* pH) { while (pH != nullptr) { cout << pH->name << " " << pH->data << "\n"; pH = pH->next; } } int main(int argc, char** argv) { toy* pH = creatList(10, 43); showList(pH); return 0; }