北理工C语言编程网上作业答案(5)

2025-07-27

21. for(i=1;i<=8-p;i++) 22. printf(\,s[i-1]); 23. } 24. else 25. { 26. i=0; 27. while(i<=p) 28. { 29. if(s[i]=='0'&&!flag&&i

37 大数分解

成绩: 5 / 折扣: 0.8

2007级在“计算机科学导论”的期末考试中有一道试题。下面请你看看那题目应该如何编写。 从键盘输入的一个大于 1 的整数,通过算法将该整数分解为若干因子的乘积。

输入:

一个正整数。

输出:

分解后的各个因子。 1. 2. 3. 4. 5. 6. 7. 8.

#include void main() { int n,i;

scanf(\,&n); for(i=2;n>1;) { if(n%i==0) {

printf(\,i);n/=i; }

9. else i++; 10. } 11. }

38 回文字符串——递归

成绩: 5 / 折扣: 0.8

有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。 输入: 字符串 输出:

Yes或者No

说明:

如输出Yes,说明输入的字符串是一个回文字符串 输出No,说明输入的字符串不是一个回文字符串 请使用递归算法实现。

1. #include 2. #include

3. int fun(char str[],int a,int b) 4. {

5. if(str[a]!=str[b]) return 0 ;

6. else if(a==b||a+1==b&&str[a+1]==str[b]) return 1; 7. else if(str[a]==str[b]) return 1&&fun(str,a+1,b-1); 8. }

9. void main() { 10. char str[100]; scanf(\,str); int n; n=strlen(str); 11. switch(fun(str,0,n-1)) 12. { 13. case 1:printf(\);break; 14. case 0:printf(\);break; 15. } 16. }

39 求最大公约数——递归

成绩: 5 / 折扣: 0.8

请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。 = m 当 m<=n 且 n mod m =0 GCD(N,M) = GCD(m,n) 当n

输出:

n和m的最大公约数

1. #include 2. int gcd(int m,int n) 3. { int r; 4. r=m%n;

5. return r==0?n:gcd(n,r); 6. }

7. int main() 8. { int m,n;

9. scanf(\,&m,&n); 10. printf(\,gcd(m,n)); 11. return 0; 12. }

40 求序列之和——递归

成绩: 5 / 折扣: 0.8

请使用递归算法求下列序列的前n项之和。 1 + 1/2 - 1/3 + 1/4 -1/5 ...... 输入: n

输出:

序列的前n项和(精确到小数点之后第6位) 1. #include\ 2. int main() 3. {int n;

4. double SUM(int); 5. scanf(\,&n);

6. n==1?printf(\):printf(\,SUM(n)); 7. return 0; 8. }

9. double SUM(int n) 10. {if(n==2) return 1+1.0/n; 11. else if(n%2) return -1.0/n+SUM(n-1); 12. else return SUM(n-1)+1.0/n; 13. }

44. 函数递归

成绩: 10 / 折扣: 0.8

编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。 f( n ) =

1

f(n-1) + f(n-3) f(n-2) + f(n-4) -1

当 n >= 0 且 n <= 4 时 当 n > 4 且n为偶数 时 当 n > 4 且n为奇数 时 其他

函数原型如下:

int findf(int n);

参数说明:n 项数;返回值是第n项值。 例如输入:10,输出:8

预设代码 前置代码

view plaincopy to clipboardprint?

1. 2. 3. 4. 5. 6. 7. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */

#include

int main()

{ int n,s, findf( int ); scanf(\, &n);

8. s = findf(n);

9. printf(\, s); 10. return 0; 11. } 12. 13. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */

1. int findf(int n) 2. {

3. int i;

4. if(n>=0&&n<=4) i=1;

5. if(n>4&&n%2==0) i=findf(n-1)+findf(n-3); 6. if(n>4&&n%2==1) i=findf(n-2)+findf(n-4); 7. if(n<0) i=-1; 8. return i; 9. }

#include main() {

int m,n,a,i,j,s=0;

printf(\scanf(\int b[m][n]; if(m>n) { i=m; m=n; n=i; s=1; }

int c[m][n]; for(i=0;i

for(j=0;j

for(a=1;a

if(a%2!=0)

{c[0][a]=c[0][a-1]+1;

for(i=1,j=a-1;i>=0&&i=0&&j

{c[a][0]=c[a-1][0]+1;


北理工C语言编程网上作业答案(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:加强道德修养,锤炼道德品质

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219