//求两个正整数的最大公约数
/*
欧几里得算法:对于正整数a和b,连续进行求余运算,直到余数为零,此时非零的除数就是最大公约数。
递归的方法:a>b,a-b和b最大公约数相同,fun(a,b)=fun(a-b,b)
a<b,b-a和a最大公约数相同,fun(a,b)=fun(a,b-a)
a=b,a和b最大公约数相同,fun(a,b)=a=b
*/
#include<stdio.h>
/*
int fun(int a,int b)
{
int c,d;
c=0;d=1;
if(a<b)
{
c=a;a=b;b=c;
}
while(d!=0)
{
d=a%b;
if(d!=0)
{
a=b;b=d;
}
}
return b;
}
*/
int fun(int a,int b)
{
if(a==b)
{
return a;
}
else if(a>b)
{
return (fun(a-b,b));
}
else
{
return (fun(a,b-a));
}
}
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=fun(a,b);
printf("%d\n",c);
return 0;
}
/*
5个人分椰子,第一个把椰子分为5等份,还剩下一个给猴子,自己拿了一份;第二个把剩下的椰子分为5等份,还剩下一个给猴子,自己拿了一份;以此类推,直到五个水手都分完。计算并输出这堆椰子至少有多少个?
*/
#include<stdio.h>
int main()
{
int i,n;
double j,k;
i=0;
while(1)
{
n=0;
k=i*5+1;
while(n<4)
{
k=(k/4)*5+1;
if(k!=(int)k)
{
break;
}
n++;
}
if(n==4)
{
break;
}
else
{
i++;
}
}
printf("k=%d\n",k);
return 0;
}
7.3课后习题
猜你喜欢
转载自blog.csdn.net/qq_42148307/article/details/104854675
今日推荐
周排行