早教吧作业答案频道 -->其他-->
求一个程序设计数列链表的创建及计算输入a0、a1和n,a0和a1是两个小于10的正整数,构造一个序列,a0和a1是该序列的前两项,其后继项是由序列中最后2项的乘积生成,规则是:1)若积为一位数,2
题目详情
求一个程序设计 数列链表的创建及计算
输入a0、a1和n,a0和a1是两个小于10的正整数,构造一个序列,a0和a1是该序列的前两项,其后继项是由序列中最后2项的乘积生成,规则是:
1) 若积为一位数,2) 则此积为后继项;
3) 若积为二位数,4) 则该积的十位数和个位数依次作为序列的两个后继项.
把所产生的序列以链接方式存储,并求出前n项和.
输入a0、a1和n,a0和a1是两个小于10的正整数,构造一个序列,a0和a1是该序列的前两项,其后继项是由序列中最后2项的乘积生成,规则是:
1) 若积为一位数,2) 则此积为后继项;
3) 若积为二位数,4) 则该积的十位数和个位数依次作为序列的两个后继项.
把所产生的序列以链接方式存储,并求出前n项和.
▼优质解答
答案和解析
#include "stdio.h"
#include "stdlib.h"
#include "malloc.h"
struct List
{
int data;
struct List *next;
}List;
struct List * InitList(int a1,int a2,int n)
{
struct List *head,*p1,*p2,*p,*q;
int num=2,pro;
head=(struct List *)malloc(sizeof(struct List));
head->next=NULL;
p=head;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=a1;
p->next=q;
p=p->next;
p1=q;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=a2;
p->next=q;
p=p->next;
p2=q;
while (numnext=NULL;
pro=p1->data*p2->data;
if (prodata=pro;
}else{
q->data=pro/10;
p->next=q;
p=p->next;
p1=p1->next;
p2=p2->next;
num++;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=pro%10;
}
p->next=q;
p=p->next;
p1=p1->next;
p2=p2->next;
num++;
}
return head;
}
void ListPrint(struct List *head,int n)
{
struct List *p;
int num=0,sum=0;
p=head->next;
printf("\n\n");
while(numdata);
sum+=p->data;
num++;
p=p->next;
}
printf("\n\n前%d项和为:%d\n\n",n,sum);
}
void main()
{
int a1,a2,n;
do
{
system("cls");
printf("输入a1,a2,n (其中a1,a2为<10的正整数)\n");
scanf("%d%d%d",&a1,&a2,&n);
} while(a19||a29||n
#include "stdlib.h"
#include "malloc.h"
struct List
{
int data;
struct List *next;
}List;
struct List * InitList(int a1,int a2,int n)
{
struct List *head,*p1,*p2,*p,*q;
int num=2,pro;
head=(struct List *)malloc(sizeof(struct List));
head->next=NULL;
p=head;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=a1;
p->next=q;
p=p->next;
p1=q;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=a2;
p->next=q;
p=p->next;
p2=q;
while (numnext=NULL;
pro=p1->data*p2->data;
if (prodata=pro;
}else{
q->data=pro/10;
p->next=q;
p=p->next;
p1=p1->next;
p2=p2->next;
num++;
q=(struct List *)malloc(sizeof(struct List));
q->next=NULL;
q->data=pro%10;
}
p->next=q;
p=p->next;
p1=p1->next;
p2=p2->next;
num++;
}
return head;
}
void ListPrint(struct List *head,int n)
{
struct List *p;
int num=0,sum=0;
p=head->next;
printf("\n\n");
while(numdata);
sum+=p->data;
num++;
p=p->next;
}
printf("\n\n前%d项和为:%d\n\n",n,sum);
}
void main()
{
int a1,a2,n;
do
{
system("cls");
printf("输入a1,a2,n (其中a1,a2为<10的正整数)\n");
scanf("%d%d%d",&a1,&a2,&n);
} while(a19||a29||n
看了 求一个程序设计数列链表的创建...的网友还看了以下:
怎样将3x-4y-5=0列成比例式呢?原理是啥?比例式为:(x-3)/4=(y-1)/3,原理是啥 2020-06-03 …
提取一列小数后一位形成一行数字.如:0.14、0.03、0.28、0.34、.48、0.59、0. 2020-06-08 …
用5、2、7、8、和两个0组成数字省略“万“后面的尾数约等于25万的� 2020-07-16 …
4个1和4个0组成数列有几种排法 2020-07-21 …
将整数1,2,3…2009按下列方式排列成数表,用斜十字框“╳”框出任意的5个数(如下图),如果用 2020-07-30 …
将整数1,2,3…2009按下列方式排列成数表,用斜十字框“╳”框出任意的5个数(如下图),如果用 2020-08-02 …
(2012•漳州模拟)():200=()%=()()=0.35=成数. 2020-11-12 …
将连续的奇数1、3、5、7……排列成数表1.十字框(5、15、17、19、29)的数会等于578、7 2020-11-17 …
将如图所示的三角形数阵中所有的数按从上至下、从左至右的顺序排列成数列a11,a21,a22,a31, 2020-11-20 …
红星十星红十星红=爱星星列成数学算式每个字该填几 2020-12-16 …