题目
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210326142932179.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyMjkwNDM2,size_16,color_FFFFFF,t_70)
解题入手
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210326143022653.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUyMjkwNDM2,size_16,color_FFFFFF,t_70)
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int date;
struct node* pre;
struct node* next;
}node;
void insert(node* list,int date){
node* p = list;
if(p==NULL){
return;
}
else{
while(p->next){
p = p -> next;
}
node* pnew=(node*)malloc(sizeof(node));
pnew -> date = date;
p -> next = pnew;
pnew-> pre =p;
pnew -> next = NULL;
}
}
void tranverselist(node* list,int n){
node* p = list;
p=p->next;
printf("%d.",p->date);
int i;
p=p->next;
for(i=0;i<n;i++){
printf("%d",p->date);
if(p->next){
p=p->next;
}
}
printf("\n");
}
int main()
{
node *num,*sum;
num=(node*)malloc(sizeof(node));
sum=(node*)malloc(sizeof(node));
num -> pre = NULL;
sum -> pre = NULL;
num -> next = NULL;
sum -> next = NULL;
int n;
scanf("%d",&n);
int i;
for(i=0;i<520;i++){
insert(num,0);
insert(sum,0);
}
node* p1 = num -> next;
node* p2 = sum -> next;
p1->date=2;
p2->date=2;
while(p1->next){
p1=p1->next;
}
node* numtail = p1;
while(p2->next){
p2=p2->next;
}
node* sumtail = p2;
int temp = 0;
int ret = 0;
int t;
for(i=1,t=3;i<10000;i++,t=t+2){
node* p3 = numtail;
ret=0;
while(p3) {
temp = p3 -> date * i + ret;
p3 -> date = temp%10;
ret = temp/10;
p3 = p3 -> pre;
}
ret = 0;
p3 = num -> next;
while(p3){
temp = p3 -> date + ret*10;
ret = temp % t;
p3 -> date = temp/t;
p3=p3->next;
}
ret = 0;
node* p4 = sumtail;
p3 = numtail;
while(p3&&p4){
temp = p3 -> date + p4->date +ret ;
ret = temp/10;
p4->date=temp%10;
p3=p3->pre;
p4=p4->pre;
}
}
tranverselist(sum,n);
return 0;
}