C 加分题目
用C实现一个函数 int gcd(int a, int b) 求解两个整数的最大公约数,算法步骤是,用a ,b中的大值减去小值得到临时值c,然后再用c和a,b中的最小值进行计算,直到c和a,b中的最小值相等。一个例子参考附件。
提交代码和运行截图。
#include <stdio.h>
int gcd(int x, int y)
{
int sum1 = 1;
//先判断 x y是否都是偶数
while ((x % 2 == 0) && (y % 2 == 0))
{
sum1 *= 2;
x = x / 2;
y = y / 2;
}
while (1)
{
//保证,被减数大于减数,不然就交换顺序
if (x < y)
{
int temp = x;
x = y;
y = temp;
}
//差放在s中
int s = x - y;
//判断差 和 减数 是否相等,如果是,跳出循环。
if (y == s)
break;
else
{
x = y;
y = s;
}
}
//最大公约数就是约掉的若干个2的积与第二步中等数(减数=差)的乘积
return y * sum1;
}
int main()
{
int a = 98;
int b = 63;
int gcdnum = gcd(a, b);
printf("%d %d的最大公约数为 %d\n", a, b, gcdnum);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~