網(wǎng)站360自然排名要怎么做百度手機(jī)版
第1關(guān):遞歸求階乘數(shù)列
任務(wù)描述
題目描述:用遞歸求Sn=1!+2!+3!+4!+5!+…+n!
之值,其中n
是一個(gè)數(shù)字。
相關(guān)知識(shí)(略)
編程要求
請(qǐng)仔細(xì)閱讀右側(cè)代碼,結(jié)合相關(guān)知識(shí),在Begin-End
區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。 輸入
一個(gè)整數(shù)n(1<=n<=20)
輸出
輸出表達(dá)式的值,占一行。
測(cè)試說(shuō)明
樣例輸入:
5
樣例輸出:
153
提示:
因階乘結(jié)果變化很快,所以輸入數(shù)據(jù)不可太大。
開始你的任務(wù)吧,祝你成功!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
long long solve(long long n)
{/*********Begin*********/long long i1 = 1, s = 1;while (i1 <= n){s = s * i1;i1++;}return s;/*********End**********/
}
int main(void)
{long long n;scanf("%lld", &n);long long ans = 0;for (long long i = 1; i <= n; i++)ans += solve(i);printf("%lld", ans);return 0;
}
第2關(guān):遞歸實(shí)現(xiàn)輸出一個(gè)整數(shù)的逆序
任務(wù)描述
題目描述:編寫一個(gè)遞歸函數(shù),將一個(gè)整數(shù)n
逆序輸出,比如,n = 12345
,輸出54321
。 ####相關(guān)知識(shí)(略) ####編程要求 請(qǐng)仔細(xì)閱讀右側(cè)代碼,結(jié)合相關(guān)知識(shí),在Begin-End
區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。 輸入
一個(gè)整數(shù)n
。 輸出
該整數(shù)的逆序。 ####測(cè)試說(shuō)明 樣例輸入: 12345
樣例輸出:
54321
開始你的任務(wù)吧,祝你成功!
#include<stdio.h>
void solve(int n)
{printf("%d", (n%10));//取末位,1234再取/*********Begin*********/n = n / 10;//左移,1234/*********End**********/if (n > 0) solve(n);
}
int main(void)
{int n;scanf("%d",&n);solve(n);return 0;
}
第3關(guān):將整數(shù)遞歸轉(zhuǎn)換成字符串
任務(wù)描述
題目描述:用遞歸法將一個(gè)整數(shù)n
轉(zhuǎn)換成字符串。例如,輸入n
為483
,輸出字符串 4 8 3
,每個(gè)數(shù)字后面接一個(gè)空格用于隔開字符。 ####相關(guān)知識(shí)(略) ####編程要求 請(qǐng)仔細(xì)閱讀右側(cè)代碼,結(jié)合相關(guān)知識(shí),在Begin-End
區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。 輸入
一個(gè)整數(shù)n
輸出
相應(yīng)的用空格隔開的數(shù)字字符。
特別注意:輸出字符之間有空格
測(cè)試說(shuō)明
樣例輸入:
483
樣例輸出:
4 8 3
開始你的任務(wù)吧,祝你成功!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void solve(int n)
{int temp = n % 10;//取3,8,4/*********Begin*********/n = n / 10;//48if(n > 0)solve(n);/*********End**********/if (n)printf(" %d", temp);elseprintf("%d", temp);
}
int main(void)
{int n;scanf("%d", &n);solve(n);return 0;
}
第4關(guān):遞歸實(shí)現(xiàn)Ackman函數(shù)
任務(wù)描述
題目描述:編寫一函數(shù)實(shí)現(xiàn)下列Ackman函數(shù),其中m
,n
為正整數(shù)
?Acm(m,n)=?????????n+1Acm(m?1,1)Acm(m?1,Acm(m,n?1))??if?m=0,n>0?if?n=0,m>0?if?n>0,m>0?
相關(guān)知識(shí)(略)
編程要求
請(qǐng)仔細(xì)閱讀右側(cè)代碼,結(jié)合相關(guān)知識(shí),在Begin-End
區(qū)域內(nèi)進(jìn)行代碼補(bǔ)充。 輸入 一個(gè)兩個(gè)整數(shù) 輸出 輸出表達(dá)式的值,占一行。 ####測(cè)試說(shuō)明 樣例輸入: 1 1
樣例輸出: 3
開始你的任務(wù)吧,祝你成功!
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int Acm(int m, int n) {if (m == 0 && n > 0)/*********Begin*********/return n + 1;/*********End**********/else if (n == 0 && m > 0)/*********Begin*********/{return Acm(m - 1, 1);}/*********End**********/else/*********Begin*********/{return Acm(m - 1, Acm(m, n - 1));}/*********End**********/
}
int main(void)
{int m, n;scanf("%d%d", &m, &n);printf("%d", Acm(m, n));return 0;
}