问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

求C语言用递归做的题目,主要是为了练习递归思想。谢谢

发布网友 发布时间:2022-05-10 21:08

我来回答

3个回答

热心网友 时间:2023-10-31 22:22

9.杨辉三角形
在屏幕上显示杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。
从杨辉三角形的特点出发,可以总结出:
1)第N行有N+1个值(设起始行为第0行)
2)对于第N行的第J个值:(N>=2)
当J=1或J=N+1时:其值为1
J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值
之和
将这些特点提炼成数学公式可表示为:
1 x=1或x=N+1
c(x,y)=
c(x-1,y-1)+c(x-1,y) 其它
本程序应是根据以上递归的数学表达式编制的。
*程序说明与注释
#include<stdio.h>
int main()
{
int i,j,n=13;
printf("N=");
while(n>12)
scanf("%d",&n); /*控制输入正确的值以保证屏幕显示的图形正确*/
for(i=0;i<=n;i++) /*控制输出N行*/
{
for(j-0;j<24-2*i;j++) printf(" "); /*控制输出第i行前面的空格*/
for(j=1;j<i+2;j++) printf("%4d",c(i,j)); /*输出第i行的第j个值*/
printf("\n");
}
}
void int c(int x,int y) /*求杨辉三角形中第x行第y列的值*/
{
int z;
if((y==1)||(y==x+1)) return 1; /*若为x行的第1或第x+1列,则输出1*/
z=c(x-1,y-1)+c(x-1,y); /*否则,其值为前一行中第y-1列与第y列值之和*/
return z;
}

10.数制转换
将任一整数转换为二进制形式
*问题分析与算法设计
将十进制整数转换为二进制的方法很多,这里介绍的实现方法利用了C语言能够对位进行操作的特点。对于C语言来说,一个整数在计算机内就是以二进制的形式存储的,所以没有必要再将一个整数经过一系列的运算转换为二进制形式,只要将整数在内存中的二进制表示输出即可。
*程序说明与注释
#include<stdio.h>
void printb(int,int);
int main()
{
int x;printf("Input number:");
scanf("%d",&x);
printf("number of decimal form:%d\n",x);
printf(" it's binary form:");
printb(x,sizeof(int)*8); /*x:整数 sizeof(int):int型在内存中所占的字节数
sizeof(int)*8:int型对应的位数*/
putchar('\n');
}
void printb(int x,int n)
{
if(n>0)
{
putchar('0'+((unsigned)(x&(1<<(n-1)))>>(n-1))); /*输出第n位*/
printb(x,n-1); /*归调用,输出x的后n-1位*/
}
}

热心网友 时间:2023-10-31 22:22

题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月
又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
2.程序源代码:
main()
{
long f1,f2;
int i;
f1=f2=1;
for(i=1;i<=20;i++)
{ printf("%12ld %12ld",f1,f2);
if(i%2==0) printf("\n");/*控制输出,每行四个*/
f1=f1+f2; /*前两个月加起来赋值给第三个月*/
f2=f1+f2; /*前两个月加起来赋值给第三个月*/
}
}

热心网友 时间:2023-10-31 22:23

一个字符串只有1,0,x三个符号,表示二进制数,其中x可以换成1或者0,现给你一个这样的字符串,请把它所有可能的二进制数转换成十进制,并按从小到大顺序输出。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么是Medical Literature Analysis and Retrieval System (NLM)的缩 ... 医学工作者的因特网内容简介 2002年的一篇文章英文摘要被《医学文献联机数据库》(MEDLINE)收录,是否... 医学器具medline啥意思 民国市与县的关系是怎样的,市与县分别又是什么? 历代兵制中国民国兵制 冰箱运行时有水流声怎么回事? ud牛郎眼影真假判断 爆闪/没有平替❌ 牛郎眼影真假鉴别方法 鉴别❗️衰败城市牛郎眼影真假,粉质肉眼差距 c语言递归函数编程习题 C语言函数递归调用习题,求答案解析 数据结构递归习题 10道pascal的递归习题,简单一点啊 C语言求一些关于递归的练习题 佳能 MG5180打印机可以不可以加墨?是否可以改进供墨系统,改进供墨系统打印效果怎么样? 佳能mg5180打印机打出这样是什么情 您好,您的佳能MG5180打印机是怎么加墨的呀?求救啊! 请问为什么打印机可以打印图片但是打印不了电子表格和文档,我的打印机是佳能MG5180的 佳能打印机MG5180字体纽曲怎么维修 佳能打印机MG5180报错6A81是什么意思 佳能MG5180墨水收集器已满如何清零? mg5180打印机显示“请安装打印头”是什么意思 添加佳能打印机时,MG5180的选添加哪个? 佳能打印机MG5180 MG6180这么好的高性价比打印机为什么没有人关注?想入手!!急急急!! CANON MG5180支持什么类型的数据 &gt; 佳能MG5180和佳能iP3680哪个好?麻烦告诉我 佳能MG5180墨盒怎样清零 佳能MG5180显示m200怎么办啊 电脑微信如何换行 求解答 pascal递归练习:求字母的全排列 定义一个递归函数,求给定正整数的二进制形式的位数。 如何进行递归定义? 怎样写出一个递归程序 不懂递归全排列 《编程珠玑》一道练习题:二分查找的递归算法,要求函数名为int binarysearch(DataType x[], int n)。 pascal递归教程 垃圾桶那里? 我要鸟的女毛是什么垃圾。 包是什么垃圾? 为什么?口香糖是... 茶包垃圾分类 oppor7s wifi下自动更新怎么关闭 牦牛会被红色激怒吗? 什么牛不耕田。 请问php的数据库函数中mysql_fetch_row、mysql_affected_rows、mysq... 黄牛和牦牛哪个厉害 战斗力最强的斗牛是哪种? 关于牛的历史问题 所有的牛(奶牛牦牛)对红色都敏感吗 世上有几种牛? 牦牛误入一高中操场散步撒欢,学校封闭的情况下,耗牛是如何进来的? dhl国际快递官网