【C语言蓝桥杯每日一题】—— 既约分数

简介: 哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 既约分数~ 都是精华内容,可不要错过哟!!!😍😍😍

微信图片_20230427214238.gif

😎博客昵称:博客小梦

😊最喜欢的座右铭:全神贯注的上吧!!!

😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘


微信图片_20230427160707.gif


前言🙌


   哈喽各位友友们😊,我今天又学到了很多有趣的知识,现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享【C语言蓝桥杯每日一题】—— 既约分数~ 都是精华内容,可不要错过哟!!!😍😍😍


既约分数🙌


微信图片_20230428180750.png


解题思路分析: 😍


1.这道题其实考察的是求最大公约数的问题,这道题偶然比较简单,但是你经常刷题的时候会发现,很多题都是基于一些基础然后延伸出来的。今天刚好遇到这道题,也当复习一下。

2.这里主要用到的是辗转相除法来求最大公约数。之前我也写了一篇关于求最小公倍数几种方法的博客,利用 最大公约数 乘以 最小公倍数 = 两个数 的乘积的关系,知道一个就可以求得另外一个。大家可以点击阅读一下。博客链接: 你是真的“C”——求两个正数最小公倍数的3种境界~


递归版解题代码:😍


#include <stdio.h>
#include <stdlib.h>
int f(int i,int j) 
{
  if(i % j == 0)
  return j;
  else
  return f(j,i % j);
}
int main(int argc, char *argv[])
{
  int i = 0;
  int j = 0;
  int sum = 0;
  for (i = 1; i <= 2020; i++)
  {
    for (j = 1; j <= 2020; j++)
    {
      if(f(i,j) == 1)
      sum++;
    }
  }
  printf("%d",sum);
  return 0;
}


非递归版解题代码:😍


#include <stdio.h>
#include <stdlib.h>
int f(int i,int j) 
{
  int t = 0;
  while(j != 0)
  {
    t = i % j;
    i = j;
    j = t;
  }
}
int main(int argc, char *argv[])
{
  int i = 0;
  int j = 0;
  int sum = 0;
  for (i = 1; i <= 2020; i++)
  {
    for (j = 1; j <= 2020; j++)
    {
      if(f(i,j) == 1)
      sum++;
    }
  }
  printf("%d",sum);
  return 0;
}


程序输出结果验证: 😊


微信图片_20230428180841.png


总结撒花💞


   本篇文章旨在分享【C语言蓝桥杯每日一题】—— 既约分数。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘


相关文章
|
8月前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
196 3
|
8月前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
167 2
蓝桥杯:最大公约数 2020省赛 例题:既约分数
蓝桥杯:最大公约数 2020省赛 例题:既约分数
180 0
|
11月前
|
人工智能 算法 测试技术
2023年第15届蓝桥杯模拟赛第二期(c语言)
2023年第15届蓝桥杯模拟赛第二期(c语言)
415 0
C语言实战项目——学生试卷分数统计
C语言实战项目——学生试卷分数统计
|
存储 算法 C语言
C语言练习记录(蓝桥杯练习)(小蓝数点)
C语言练习记录(蓝桥杯练习)(小蓝数点)
|
C语言
c语言编程练习题:7-34 求分数序列前N项和
c语言编程练习题:7-34 求分数序列前N项和
163 0
c语言编程练习题:7-34 求分数序列前N项和
|
Java
③【Java 组】蓝桥杯省赛真题 [黄金连分数][马虎的算式]持续更新中...
③【Java 组】蓝桥杯省赛真题 [黄金连分数][马虎的算式]持续更新中...
127 0
|
C语言
C语言:分数序列求和
题目:有一个分数序列:2/1 + 3/2 + 5/3 + 8/5 +...,求出这个数列的前 20 项之和。 背景:无。 思路:采用 for 循环,利用数学知识 分子:第 n 项 = 第 n - 1 项 + 第 n - 2 项。 分母:第 n 项 = 第 n - 1 项 + 第 n - 2 项。
355 0
|
C语言
C语言练级之路num5(一些蓝桥杯的小题目)
C语言练级之路num5(一些蓝桥杯的小题目)