代码编织梦想

既约分数

问题描述:

如果一个分数的分子和分母的最大公约数是 1,这个分数称为既约分数。例如,1/2 , 2 , 5/13 等都是既约分数。
请问在分子和分母都是 1 到 2023之间的整数范围里,共有多少个既约分数(包括 1 和 2023)?

题目分析:

暴力求解找出分子分母除1外没有最大公约数的分数。注意运用函数解决问题的思路。

#include <stdio.h>
#include <stdlib.h>

int Gcd(int a,int b)
{
    if(a%b==0)
        return b;
    else
        return Gcd(b,a%b);

}

int main()
{
    int n = 2023;
    int count = 0;
    int i = 1,j=1;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=n; j++)
        {
            if(Gcd(i,j)==1)
            {
                count++;
            }
        }
    }
    printf("%d\n",count);
    return 0;
}

输出结果:

2489687

(改编自蓝桥杯 既约分数)

平面分割

问题描述:20个圆和20条直线能将平面分为几部分?(注意:一个圆可以把一平面分为两部分,而一条直线也同样能将一个平面分为两部分)

求解思路:

先自己列出几个例子,找出规律;并实现递归算法;

可以列出1个圆与0条直线和0个圆与1条直线的情况平面都被分为2部分,用<x,y> 表示x个圆与y条直线,create分割函数,<1,1>时,结果为4;<1,2>时,结果为8;<2,1>时,结果为6;<2,0>时,结果为4;<0,2>时,结果为4;<2,2>时结果为12;由此发现规律。

#include <stdio.h>
#include <stdlib.h>


int Split(int circle,int line){
    if(circle<0||line<0){
        printf("Please input correct value.\n");
         return 0;
    }
    if((circle==1&&line==0)||(circle==0&&line==1)) return 2;
    else if(circle==1&&line==1) return 4;
    else if(circle==0||line==0){
        if(circle==0){
            return 2*line;
        }
        else{
            int j=0,sum=1;
            for(j=0;j<circle;j++){
                sum*=2;
            }
            return sum;
        }
    }
    else{
        if(line>=2)
            return 2*Split(circle,line-1);
        else if(circle>=2)
            return Split(circle-1,line)+Split(circle-2,line);
    }
    printf("There has an error.\n");
    return 0;
}

int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m)){
        printf("%d\n",Split(n,m));
    }
    return 0;
}

这个没找题目提交,也有可能不太对,请大家指正~感谢各位喽!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_63244187/article/details/129479813

蓝桥杯题目---非法二进制数_heyamos的博客-爱代码爱编程_蓝桥杯非法二进制

描述 如果一个二进制数包含连续的两个1,我们就称这个二进制数是非法的。 小Hi想知道在所有 n 位二进制数(一共有2n个)中,非法二进制数有多少个。 例如对于 n = 3,有 011, 110, 111 三个非法二进制数。 由于结果可能很大,你只需要输出模109+7的余数。 输入 一个整数 n (1 ≤ n ≤ 100)。 输出 n 位非法二进

蓝桥杯题目练习(旅行家的预算)-爱代码爱编程

算法训练VIP 旅行家的预算 原题链接:旅行家的预算 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市 到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P 和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算

蓝桥杯题目 过桥问题-爱代码爱编程

题目: 在一个夜黑风高的晚上,有n(n <= 50)个小朋友在桥的这边,现在他们需要过桥,但是由于桥很窄,每次只允许不大于两人通过,他们只有一个手电筒,所以每次过桥的两个人需要把手电筒带回来,i号小朋友过桥的时间为T[i],两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。 输入: 两行数据:第一行为小朋友个数n 第二行有

每日一练蓝桥杯C语言:倒计时15天-爱代码爱编程

哈喽,我是鸟哥,点赞关注支持一下,谢谢 文章目录⛳1.门牌制作⛳2.既约分数⛳3.蛇形填数⛳4.跑步锻炼⛳5.七段码⛳6.成绩统计⛳7.回文日期⛳ 8.子串分值和⛳9.平面切分⛳10.字串排序 ⛳1.门牌制作 思考:该题使用循环1-2020即可,每次循环需要判断每个位数是否为2,方法:三个if()判断是否有十位、百位、千位、有的情况下判断是否为2,

【蓝桥杯】日期类问题详解-爱代码爱编程

目录 1 判断某年是否是闰年 2 求指定日期是星期几 3 求日期A到日期B有多少天 1 判断某年是否是闰年        日期类问题常常涉及对闰年的判断:年份是4的倍数的,一般都是闰年;但年份是整百数的,必须是400的倍数才是闰年。 bool run(int y){ return (y%100 && y%4 == 0)|

蓝桥杯Python初级测试题之省赛题1-爱代码爱编程

蓝桥杯Python初级测试题之省赛题1 1. 统计成绩及格率和优秀率题目描述 小L给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分,则称为及格;如果得分至少为 85 分,则称为优秀。 请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。输入描述 输入的第一行包含一

蓝桥杯题目——刷题笔记-爱代码爱编程

刷题笔记 DFS全球变暖作物杂交小朋友崇拜圈发现环 DFS 全球变暖 #include <bits/stdc++.h> using namespace std; int n; const int SIZE = 1e4+5; char area[SIZE][SIZE]; int d[4][2] = {{1, 0}, {-1, 0

《蓝桥杯Java组通关秘笈》-爱代码爱编程

文章目录 ⚔ Eclipse篇🗡 Eclipse创建文件🗡 Eclipse自动生成简单类🗡 Eclipse常用快捷键🗡 Eclipse中Debug调试⚔ 数据篇🗡 输入、输出重定向🗡 快速读取、写出模板🗡 数组排序🗡 Calender类⚔ 算法篇🗡 字符串KMP算法模板🗡 二分二分查找常用模板upper_boundlower_bound二分判断类问

2021年蓝桥杯javaB组时间显示题目-爱代码爱编程

2021年蓝桥杯javaB组时间显示题目解答 这里是题目: 这是解答: import java.math.BigInteger; import java.util.Scanner; public class a2{ public static void main(String[] args) { Scanner sc=new Scanner(Sy

蓝桥杯dp-爱代码爱编程

地宫取宝 首先,我们看的出来,这个题目跟之前做过的线性dp摘花生不是一般的像,所以首先就是,一个二维的是最起码得了,然后你分析题目,就能发现,他还要求拿的是一个上升的序列,上升子序列又来了,按道理是要存下最大的那个是什么哈哈哈,又来了一维,这时候我们发现,他还需要记录一下,到第几个了,所以再加一维,变成了四维 就出现了f(i, j, k, c)这四维,

蓝桥杯java技巧总结_某某小白的博客-爱代码爱编程

文章目录 一、数据结构1. 哈希表2. 堆二、对象数组排序三、时间相关1. String转Date2. Date转String(标准格式化)3. Calender类(日历,星期)4. 计算时间间隔四、字符串1.int和String的互相转换2.判断一个字符串是否是回文五、 BigInteger与BigDecimal1.BigInteger2.Big

蓝桥杯刷题012——蜂巢-爱代码爱编程

蜂巢   蜂巢2022年第十三届省赛,lanqiao0J题号2134(难度值★★★) 【问题描述】         蜂巢由大量的六边形拼接而成, 定义蜂巢中的方向为: 0 表示正西方向, 1 表示西偏北 60°,2 表示东偏北 60°,3 表示正东, 4 表示东偏南60°,5 表示西 偏南60°。         对于给定的一点 O,

蓝桥杯python杂题2-爱代码爱编程

矩阵拼接  矩形拼接2022年第十三届省赛,lanqiao0J题号2238(难度值★★★★)10分 【问题描述】         已知 3 个矩形的大小依次是和 。用这 3 个矩形能拼 出的所有多边形中, 边数最少可以是多少?         例:用的矩形(用 A 表示)、 的矩形 (用 BB 表示) 和的矩 形(用 表示)可以拼出如下

第十三届蓝桥杯省赛 java a组 - 蜂巢-爱代码爱编程

✍个人博客:https://blog.csdn.net/Newin2020?spm=1011.2415.3001.5343 📚专栏地址:蓝桥杯题解集合 📝原题地址:蜂巢 📣专栏定位:为想参加蓝桥别的小伙伴整理常考算法题

第十二届蓝桥杯软件类省赛c++ b组 题目 + 题解-爱代码爱编程

文章目录 试题 A: 空间 试题 B: 卡片 试题 C: 直线 试题 D: 货物摆放 试题 E: 路径 试题 F: 时间显示 试题 G:

13届蓝桥杯省赛pythonb组真题-爱代码爱编程

蜂巢题目本身难度并不大,使用枚举方法就可以求解,但在编程中还是有坑的(文末最后提到)。解题思路: 1.先把蜂巢坐标系(d, p, q)转换为直角坐标系(x, y),不妨把正六边形中心到各边的距离记作1. 则沿6各方向移动一步的坐标变换是: direction = [(-2, 0), (-1, a), (1, a), (2, 0), (1, -a),

蜂巢(蓝桥杯python)_蜂巢由大量的六边形拼接而成,定义蜂巢中的方向为:0 表示正西方向,1 表示西偏北 60-爱代码爱编程

问题描述 蜂巢由大量的六边形拼接而成, 定义蜂巢中的方向为: 0 表示正西方向, 1 表示西偏北 60°,2 表示东偏北 60°,3 表示正东, 4 表示东偏南 60°,5 表示西偏南 60°。 对于给定的一点 O, 我们以 O 为原点定义坐标系, 如果一个点 A 由 O 点 先向 d 方向走 p 步再向 (d+2) mod 6方向 ( d