6-6 求单链表结点的阶乘和(15 分) 本题要求实现一个函数,求单链表L结点的阶乘和。这里默认所有结点的值非负,且题目保证结果在int范围内。
2018-03-25 18:49
801 查看
int FactorialSum( List L )
{
int max=0,sum=0;
List p,head;
head=L;
p=head;
while(p!=NULL)
{
if(max<p->Data)
max=p->Data;
p=p->Next;
}
int fa[max+1];
fa[1]=1;
for(int i=1;i<max+1;i++)
fa[i]=fa[i-1]*i;
p=head;
while(p!=NULL)
{
sum+=fa[p->Data];
p=p->Next;
}
return sum;
}
数据结构体好久没用了,这个题目很新奇。
注意阶乘首项的分配。
阶乘采用数组一次记录最大的完全部阶乘会比较省时间和内存。
{
int max=0,sum=0;
List p,head;
head=L;
p=head;
while(p!=NULL)
{
if(max<p->Data)
max=p->Data;
p=p->Next;
}
int fa[max+1];
fa[1]=1;
for(int i=1;i<max+1;i++)
fa[i]=fa[i-1]*i;
p=head;
while(p!=NULL)
{
sum+=fa[p->Data];
p=p->Next;
}
return sum;
}
数据结构体好久没用了,这个题目很新奇。
注意阶乘首项的分配。
阶乘采用数组一次记录最大的完全部阶乘会比较省时间和内存。
相关文章推荐
- 本题要求实现一个函数,求单链表L结点的阶乘和
- 6-2 多项式求值(15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑ i=0 n (a[i]×x i ) 在x点的值。
- 剑指offer题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 6-9 统计个位数字(15 分) 本题要求实现一个函数,可统计任一整数中某个位数出现的次数。例如-21252中,2出现了3次,则该函数应该返回3。
- 6-2 多项式求值(15 分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑ i=0 n (a[i]×x i ) 在x点的值。
- 6-8 简单阶乘计算(10 分) 本题要求实现一个计算非负整数阶乘的简单函数。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 实现求出若干整数之和为500的连续整数(如98,99,100,101,102)的所有组合&&产生一个int数组,长度为100,并向其中随机插入1~100,要求不能重复
- 问题五十三: 求满足条件n=a!+b!+c!的所有三位数n(a,b,c分别是n的百位十位个位)并输出,要求用自定义函数实现求阶乘。
- 以指针和引用两种参数实现删除单链表L中所有值为X的结点的函数
- //1.调整数组使奇数全部都位于偶数前面。 //题目: //输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 笔试题目1:写一个函数,返回一个数组中所有元素被第一个元素除的结果
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 写程序。设ha和hb分别是两个带头结点的非递减有序单链表的头指针,试设计算法,将这两个有序链表合并成一个非递增有序的单链表。要求使用原链表空间,
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。 给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
- 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
- 一个int数组, 比如 array[],里面数据无任何限制,要求求出 所有这样的数array[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现
- 请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构