1. n的阶乘

输入一个整数 n,请你编写一个函数,int fact(int n),计算并输出 nn 的阶乘。

输入格式

共一行,包含一个整数 n。

输出格式

共一行,包含一个整数表示 n 的阶乘的值。

数据范围

1≤n≤10

输入样例:

3

输出样例:

6
#include<iostream>

using namespace std;

int fact(int n)
{
    if(n<=1) return n;//边界点
    n=n*fact(n-1);    //不断递归
}
int main()
{
    int n;
    cin>>n;
    cout<<fact(n)<<endl;
    return 0;
}

2.最大公约数

输入两个整数 a和 b,请你编写一个函数,int gcd(int a, int b), 计算并输出 a 和 b 的最大公约数。

输入格式

共一行,包含两个整数 a和 b。

输出格式

共一行,包含一个整数,表示 a 和 b 的最大公约数。

数据范围

1≤a,b≤1000

输入样例:

12 16

输出样例:

4
#include<iostream>

using namespace std;

int gcd(int a, int b)
{
    for(int i=1000;i>0;i--)
    if(a%i==0&&b%i==0)return i;
}
int main()
{
    int x,y;
    cin>>x>>y;
    cout<<gcd(x,y)<<endl;
    return 0;
}

输入两个整数 a 和 b,请你编写一个函数,int lcm(int a, int b),计算并输出 aa 和 bb 的最小公倍数。

输入格式

共一行,包含两个整数 a 和 b。

输出格式

共一行,包含一个整数,表示 a 和 b的最小公倍数。

数据范围

1≤a,b≤1000

输入样例:

6 8

输出样例:

24
#include<iostream>

using namespace std;

int lcm(int a,int b)
{
    for(int i=1;i<a*b;i++)
    if(i%a==0&&i%b==0)
    return i;
}
int main()
{
    int a,b;
    cin>>a>>b;
    cout<<lcm(a,b);
    return 0;
}

3.递归求斐波那契数列

请使用递归的方式求斐波那契数列的第 n项,下标从1开始。

斐波那契数列:1,1,2,3,5…,这个数列从第 3 项开始,每一项都等于前两项之和

输入格式

共一行,包含整数 n。

输出格式

共一行,包含一个整数,表示斐波那契数列的第 n 项。

数据范围

1≤n≤30

输入样例:

4

输出样例:

3
#include<iostream>

using namespace std;
int f(int n)
{
    if(n<=2) return 1;//边界点
    else
        return f(n-1)+f(n-2);
}
int main()
{
    int n;
    cin>>n;
    cout<<f(n);
    return 0;
}

4.数组翻转

给定一个长度为 n 的数组 aa 和一个整数 size,请你编写一个函数,void reverse(int a[], int size),实现将数组 a 中的前 size 个数翻转。

输出翻转后的数组 a。

输入格式

第一行包含两个整数 n和 size。

第二行包含n 个整数,表示数组 a。

输出格式

共一行,包含 n 个整数,表示翻转后的数组 a。

数据范围

1≤size≤n≤1000
1≤a[i]≤1000

输入样例:

5 3
1 2 3 4 5

输出样例:

3 2 1 4 5
#include<iostream>

using namespace std;

void reverse(int a[1010],int size)
{
    for(int i=0,j=size-1;i<j;i++,j--)
    {
        swap(a[i],a[j]);
    }
}
int main()
{
    int n,size;
    int a[1010];
    cin>>n>>size;
    for(int i=0;i<n;i++)
    cin>>a[i];
    reverse(a,size);
    for(int i=0;i<n;i++)
    cout<<a[i]<<" ";
    return 0;
}

5.数组去重

给定一个长度为 n 的数组 a,请你编写一个函数:

int get_unique_count(int a[], int n);  // 返回数组前n个数中的不同数的个数

输入格式

第一行包含一个整数 n。

第二行包含 n 个整数,表示数组 a。

输出格式

共一行,包含一个整数表示数组中不同数的个数。

数据范围

1≤n≤1000,
1≤ai≤1000。

输入样例:

5
1 1 2 4 5

输出样例:

4
#include<iostream>

using namespace std;

int sum=0;
int b[1010];
int get_unique_count(int a[1010], int n)
{
    
    for(int i=0;i<n;i++)
    {
        if(b[a[i]]==0)sum++,b[a[i]]=1;
    }
    return sum;
}
int main()
{
    int n;
    int a[1010];
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>a[i];
    cout<<get_unique_count(a,n);
    return 0;
}

6.跳台阶

一个楼梯共有 n 级台阶,每次可以走一级或者两级,问从第 0 级台阶走到第 n 级台阶一共有多少种方案。

输入格式

共一行,包含一个整数 n。

输出格式

共一行,包含一个整数,表示方案数。

数据范围

1≤n≤15

输入样例:

5

输出样例:

8
#include<iostream>

using namespace std;
int n;
int sum=0;
int k(int x)
{
    
    if(x>n)return 0;//边界点
    if(x==n)sum++;//满足条件相加
    k(x+1),k(x+2);
}
int main()
{
    
    cin>>n;
    k(0);
    cout<<sum<<endl;
    
    return 0;
}

7.二维走方格

给定一个 n×m的方格阵,沿着方格的边线走,从左上角 (0,0) 开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m) 一共有多少种不同的走法。

输入格式

共一行,包含两个整数 n 和 m。

输出格式

共一行,包含一个整数,表示走法数量。

数据范围

1≤n,m≤10

输入样例:

2 3

输出样例:

10
#include<iostream>

using namespace std;

int n=0,m=0;//定义边界n和m
int sum=0;
void k(int x,int y)//递归遍历
{
    //如果同时抵达边界,则满足条件
    if(x==n&&y==m)
    {
        sum++;
    }
    else if(x<=n&&y<=m)//判断在边界内选择
    {
        k(x+1,y);//向下边界移动1,右边界不动
        k(x,y+1);//向右边界移动1,下边界不动
    }
}
int main()
{
    cin>>n>>m;
    k(0,0);//从(0,0)位置开始遍历到(n,m)
    cout<<sum;
    return 0;
}

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐