一点蓝桥杯题目D1

既约分数

问题描述:

如果一个分数的分子和分母的最大公约数是 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;
}

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值