早教吧作业答案频道 -->其他-->
求一个程序设计数列链表的创建及计算输入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
看了 求一个程序设计数列链表的创建...的网友还看了以下:
如图所示,发电机到门诊楼的距离是400m,书线路中的火线和零线均为铜导线,导线单位长度的电阻为2. 2020-05-23 …
运输一批货物,甲车要6小时运完,乙车要8小时运完.现在由甲乙两车合运2小时后,由甲车单独运,还需多 2020-05-24 …
甲、乙两个运输队合运312吨货物,甲运6小时,乙运8小时正好运完.已知甲运输队5小时的运输量和乙运 2020-05-24 …
远距离输电装置如图所示,升压变压器和降压变压器均是理想变压器.当K由2改接为1时,下列说法正确的是 2020-06-06 …
生理盐水500ml要2小时输完如何调整滴速 2020-06-14 …
小鹏做了一个如图所示的程序图,按要求完成下列各小题.(1)当小鹏输入的数为6时,求输出的结果n;( 2020-07-05 …
我输入的速度是小华的1.2倍(小红)我输入的速度是小华输入速度的119%(小勇)(小华)小红.小华 2020-07-18 …
某公司要将仓库内30晚间同种商品搬运到码头上,现已安排一辆车用2小时共运输3.6万件,由于天气变化 2020-07-30 …
1.任意输入10数,编程输出正数个数,正数和,负数个数,负数和.2.编程输出S=1!+2!+3!+ 2020-07-30 …
为了减小输电线路上的电能损耗,在远程送电时都采用高压输电.已知一座发电厂将电能输送到某地,输送功率为 2020-12-05 …