每日刷题计划-2-4

107 阅读2分钟

「这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战

BC115 小乐乐与欧几里得

描述

小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。

输入描述:

每组输入包含两个正整数n和m。(1 ≤ n ≤ 109,1 ≤ m ≤ 109)

输出描述:

对于每组输入,输出一个正整数,为n和m的最大公约数与最小公倍数之和。

示例1

输入:

10 20

复制

输出:

30

复制

示例2

输入:

15 20

复制

输出:

65

复制

#include<stdio.h>
long long GCD(long long n, long long  m)
{
    long r = 0;
    while(r=n%m)
    {
        n = m;
        m = r;
    }
    return m;
}
int main()
{
    long long n = 0;
    long long m = 0;
    //输入n,m的值
    scanf("%lld %lld",&n,&m);
    long long ret =GCD(n,m);
    printf("%lld",(n*m)/ret+ret);
    return 0;
}

BC116 小乐乐改数字

描述

小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:

输入包含一个整数n (0 ≤ n ≤ 109)

输出描述:

输出一个整数,即小乐乐修改后得到的数字。

示例1

输入:

222222

复制

输出:

0

复制

示例2

输入:

123

复制

输出:

101

复制

#include<stdio.h>
#include<math.h>
int main()
{
    long long n = 0;
    scanf("%lld",&n);
    //要能得到每一位
    int i = 0;//用来平方计算
    int ret = 0;
    while(n)
    {
        int w =n %10;
        if(w % 2 ==0)
        {
            w = 0;
        }
        else
            w = 1;
        ret += w*pow(10,i);
        n /= 10;
        i++;
    }
    printf("%d\n",ret);
    return 0;
}

BC117 小乐乐走台阶

描述

小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?

输入描述:

输入包含一个整数n (1 ≤ n ≤ 30)

输出描述:

输出一个整数,即小乐乐可以走的方法数。

示例1

输入:

2

复制

输出:

2

复制

示例2

输入:

10

复制

输出:

89

复制