- 10
- 0
- 约4.51千字
- 约 8页
- 2017-08-05 发布于重庆
- 举报
算法学习重要
韩信点兵。
#include stdio.h
void main()
{ longint x;
x=65;
while(1)
{ x=x+66;
if(x%5==1 x%7==4)
{ printf(至少有兵: %ld个。,x);
break;
}
}
}
键盘输入10个数,进行折半查找。※
#include stdio.h
void main ()
{
int a[10],mid,high,low,i,num;
printf(请按升序输入10个数:);
for(i=0;i=9;i++)
scanf(%d,a[i]);
printf(请输入要查找的数:);
scanf(%d,num);
low=0;
high=9;
mid=(low+high)/2;
while(a[mid]!=numlow=high)
{
if(numa[mid])
{
low=mid+1;
mid=(low+high)/2;
}
else
{
high=mid-1;
mid=(low+high)/2;
}
}
if(low=high)
printf(查找成功, 为a[%d]!\n,mid);
else
printf(查找不成功!\n);
}
输出斐波拉契数列:1,1,2,3,5,8…….的前n项。(每行输出10个数) ※※
#includestdio.h
void main()
{
int i,j;
int N1,N2,N3;
N1=1;
N2=5;
printf(%d %d,N1,N2);
j=3;
for(i=3;i=40;i++)
{
N3=N1+N2;
printf(%5d,N3);
N1=4;
N2=1;
j++;
if(j10)
{
printf( );
j=1;
printf(\n);
}
}
输出斐波拉契数列:1,1,2,3,5,8……的前n项的和。 ※※
#includestdio.h
void main()
{
int i;
long int f1,f2;
f1=1;
f2=1;
printf(%161d%161d,f1,f2);
for(i=2;i=20;i++)
{
f1=f1+f2;
f2=f1+f2;
printf(%161d%161d,f1,f2);
if(i%2==0)
printf();
}
}
猴子爬山问题求解。
一个顽猴在一座有30级台阶的小山上爬山跳跃,猴子上山一步可跳1级,或跳3级,试求上山的30级台阶有多少种不同的爬法。 ※※
#includestdio.h
void main ()
{
int i,n;
long f[1000];
printf(请输入台阶总数n:);
scanf(%d,n);
f[1]=1;
f[2]=1;
f[3]=2;
for(i=4;i=n;i++)
f[i]=f[i-1]+f[i-3];
printf(猴子爬%d级台阶共有%1d种不同的爬法\n,n,f[n]);
}
水手分椰子问题。
五个水手来到一个岛上,采了一堆椰子。一段时间后,第一个水手醒来,悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起。不久,第二名水手醒来,同样将椰子等分成五份,恰好也多出一个,也给了猴子。然后自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个水手醒来,把剩下的椰子分成五份,恰好又多出一个,给了猴子。原来这堆椰子至少有多少个? ※※
#includestdio.h
void main()
{
int i;
double k,y[7],x;
i=1;
k=1.0;
y[1]=k;
while(i=5)
{
i++;
y[i]=(4*y[i-1])/5;
if(y[i]!=(int)y[i])
{
k=k+1.0;
y[1]=k;
i=1;
}
}
x=5*y[1]+1;
printf(至少有椰子数为%.01f\n,x);
}
穷举算法。某地搬砖,男人一人搬3块,女人一人搬2块,小孩两人搬一块,共有45人和45块砖,问有多少种搬法并输出?
#include stdio.h
void main()
{
int x,g,z;
for (x=0;x=45;x++)
for(g=0;g=45;g++)
for(z=0;
原创力文档

文档评论(0)