1. c语言能给个穷举、迭代、递推的举例(要有分析)。。。
穷举的意思能简单, 就是'一个个猜过去'
比如要破解一个8位数的密码, 就是从00000000到99999999的全部数字一个个试过去
这点数字对现在的计算机来说几乎不要时间
迭代是指循环运算, 比如
for ( int i = 0; i < 99999999; ++i) 这个循环就叫做迭代
至于递推, 以下抄自网络
递推算法是一种用若干步可重复的简运算(规律)来描述复杂问题的方法. 递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。
植树节那天,有五位同学参加了植树活动,他们完成植树的棵树都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;... 如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?
分析:设第一位同学植树的棵树为a1,欲求a1,需从第五位同学植树的棵数a5入手,根据“多两棵”这个规律,按照一定顺序逐步进行推算:
(1) a5=10;
(2) a4=a5+2=12;
(3) a3=a4+2=14;
(4) a2=a3+2=16;
(5) a1=a2+2=18;
递推算法以初始(起点)值为基础,用相同的运算规律,逐次重复运算,直至运算结束。这种从“起点”重复相同的方法直至到达一定“边界”,犹如单向运动,用循环可以实现。递推的本质是按规律逐次推出(计算)先一步的结果。
2. 用C语言穷举法编写鸡兔同笼
#包括中
无效的主要()
{
整数鸡,兔;
的printf(“鸡\吨兔\
N”的);
的(鸡=
0;鸡<=
35;鸡+
+)
{
兔子=
35
-
鸡;
如果(8
*兔肉+
2
*鸡==
94)的printf(“%d个\
T%D
\
N”的,鸡,兔);
3. c语言什么是穷举、递归、迭代算法
穷举法也叫枚举法或列举法。通常对于一些要求得到精确结果而所求结果又不大的时候可用此法,具体的做法就是将所有可能的情况一一举出。
程序调用自身的编程技巧称为递归。递归做为一种算法在程序设计语言中广泛应用。
代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法,即一次性解决问题。
4. 用c语言穷举
#include <stdio.h>
void main()
{
int a[100]={0};
int i,j,k,m,n=0,z;
printf("输入数字,每次回车为一个,以-1为结束数字\n");
for(i=0;i<100;i++)
{
scanf("%d",&a[i]);
n++;
if(a[i]==-1)
{
break;
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-2-i;j++)
{
if(a[j]>a[j+1])
{
k=a[j];
a[j]=a[j+1];
a[j+1]=k;
}
}
}
printf("排序后的缓绝渗数字是:\n");
for(i=0;i<n-1;i++)
printf("%d\宏核n",a[i]);
printf("请输入要插入的数字");
scanf("%d"扰脊,&m);
for(i=0;i<n-1;i++)
{
if(a[i]<=m && a[i+1]>m)
{
z=i;
break;
}
else
{
z=-2;
}
}
if(z>=0)
{
for(i=n-1;i>z;i--)
{
a[i+1]=a[i];
}
a[z+1]=m;
}
if(z==-2)
{
a[n]=m;
}
for(i=0;i<n;i++)
{
printf("%d\n",a[i]);
}
}