6-6 求單鏈表結點的階乘和(15 分) 本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。
{
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;
}
資料結構體好久沒用了,這個題目很新奇。
注意階乘首項的分配。
階乘採用陣列一次記錄最大的完全部階乘會比較省時間和記憶體。
相關推薦
6-6 求單鏈表結點的階乘和(15 分) 本題要求實現一個函式,求單鏈表L結點的階乘和。這裡預設所有結點的值非負,且題目保證結果在int範圍內。
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->Dat
6-4 求自定型別元素的平均(10 分) 本題要求實現一個函式,求N個集合元素S[]的平均值,其中集合元素的型別為自定義的ElementType。
ElementType Average( ElementType S[], int N ){ ElementType ave,sum=0.0; for(int i=0;i<N;i++) sum+=S[i]; ave=sum/N; return ave;}把
習題5-7 使用函式求餘弦函式的近似值(15 分) 本題要求實現一個函式,用下列公式求cos(x)的近似值,精確到最後一項的絕對值小於e:
/*習題5-7 使用函式求餘弦函式的近似值(15 分) 本題要求實現一個函式,用下列公式求cos(x)的近似值,精確到最後一項的絕對值小於e: 函式介面定義: double funcos( double e, double x ); 其中使用者傳入的引數為誤差上限e和自變數x
6-8 簡單階乘計算(10 分) 本題要求實現一個計算非負整數階乘的簡單函式。
int Factorial( const int N ); 其中N是使用者傳入的引數,其值不超過12。如果N是非負整數,則該函式必須返回N的階乘,否則返回0。int Factorial( const int N ){ int fa=0; if(N>=0) { fa
6-3 簡單求和(10 分) 本題要求實現一個函式,求給定的N個整數的和。
int Sum ( int List[], int N ){ int sum=0; for(int i=0;i<N;i++) { sum+=List[i]; } return sum;}list的L大寫還有N,就醬。
6-7 統計某類完全平方數(20 分) 本題要求實現一個函式,判斷任一給定整數N是否滿足條件:它是完全平方數,又至少有兩位數字相同,如144、676等。
int IsTheNumber ( const int N ) { int r=sqrt(N); int n=N; int a[10]={}; if(r*r==N){ int d; while(n){ d=n%10;
6-10 階乘計算升級版(20 分) 本題要求實現一個列印非負整數階乘的函式。
https://pintia.cn/problem-sets/14/problems/742#include <stdio.h> void Print_Factorial ( const int N ); int main() { int N;
PTA 陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的
陣列迴圈左移 (20 分) 本題要求實現一個對陣列進行迴圈左移的簡單函式:一個數組a中存有n(>0)個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向左移m(≥0)個位置,即將a中的資料由(a0a1⋯an−1)變換為(am⋯an−
習題2-6 求階乘序列前N項和(15 分)
本題要求編寫程式,計算序列 1 的前N項之和。輸入格式:輸入在一行中給出一個不超過12的正整數N。輸出格式:在一行中輸出整數結果。輸入樣例:5 輸出樣例:153#include<stdio.h> double fact (int n); int main (voi
習題2.5 兩個有序鏈表序列的合並(15 分)浙大版《數據結構(第2版)》題目集
merge 其中 接口 cnblogs oid color 給定 style bsp 本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合並為一個非遞減的整數序列。 函數接口定義: List Merge( List L1, List L2 ); 其中Lis
6-4 十進制轉換二進制 (15 分)
lse 一個 () return 轉換 裁判 pre 輸出 obi 本題要求實現一個函數,將正整數n轉換為二進制後輸出。 函數接口定義: void dectobin( int n ); 函數dectobin應在一行中打印出二進制的n。建議用遞歸實現。 裁判測試程
中M2018春C入門和進階練習集-程式設計題34 7-34 求分數序列前N項和(15 分)
7-34 求分數序列前N項和(15 分) 本題要求編寫程式,計算序列 2/1+3/2+5/3+8/5+... 的前N項之和。注意該序列從第2項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子。 輸入格式: 輸入在一行中給出一個正整數N。 輸出格式: 在一行
習題2.5 兩個有序鏈表序列的合並(15 分)<有疑問?L1 L2 沒辦法變空>
測試 bsp rto 標準 結構定義 tail ret 回歸 一個 習題2.5 兩個有序鏈表序列的合並(15 分) 本題要求實現一個函數,將兩個鏈表表示的遞增整數序列合並為一個非遞減的整數序列。 函數接口定義: List Merge( List L1, List
求符合給定條件的整數集 (15 分)
給定不超過6的正整數A,考慮從A開始的連續4個數字。請輸出所有由它們組成的無重複數字的3位數。 輸入格式: 輸入在一行中給出A。 輸出格式: 輸出滿足條件的的3位數,要求從小到大,每行6個整數。整數間以
PTA_基礎程式設計題目集_7-15 計算圓周率 (15 分)_C語言實現
題目地址 題目分析:此處唯一需要注意的是都用double,不然精度無法滿足。 我的程式碼: #include<stdio.h> int main() { double a; scanf("%lf", &a); double up = 1,
7-34 求分數序列前N項和 (15 分)
本題要求編寫程式,計算序列 2/1+3/2+5/3+8/5+... 的前N項之和。注意該序列從第2項起,每一項的分子是前一項分子與分母的和,分母是前一項的分子。 輸入格式: 輸入在一行中給出一個正整數N。 輸出格式: 在一行中輸出部分和的值,精確到小數點後兩位。題目保證計算結果不
7-32 求交錯序列前N項和 (15 分)
本題要求編寫程式,計算交錯序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N項之和。 輸入格式: 輸入在一行中給出一個正整數N。 輸出格式: 在一行中輸出部分和的值,結果保留三位小數。 輸入樣例: 5 輸出樣例: 0.917 思路:觀察得第
1056 組合數的和(15 分)我見過的最水的一道題,沒有之一(目前)
#include <iostream> using namespace std; int main() { int sum=0,N; cin>>N; int a[N]; for(int i=0; i<N; i++) cin>>
中M2018春C入門和進階練習集 函數題 6-1 使用函數求素數和(20 分)
|| bre 題目 span lse for mes view html 函數題 6-1 使用函數求素數和(20 分) 本題要求實現一個判斷素數的簡單函數、以及利用該函數計算給定區間內素數和的函數。 素數就是只能被1和自身整除的正整數。註意:1不是素數,2是素數。 函
PTA 6-1 迴圈單鏈表區間刪除(15 分)
本題要求實現帶頭結點的迴圈單鏈表的建立和單鏈表的區間刪除。L是一個帶頭結點的迴圈單鏈表,函式ListCreate_CL用於建立一個迴圈單鏈表,函式ListDelete_CL用於刪除取值大於min小於max的連結串列元素。 函式介面定義: Status ListCreate_