函数的习题

804. n的阶乘

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int n)
{
    if(n==1) return 1;
    return n*f(n-1);
}
int main(void)
{
    int n; cin>>n;
    cout<<f(n)<<endl;
    return 0;
}

805. x和y的最大值

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int a,int b)
{
    return a>b?a:b;
}
int main(void)
{
    int a,b; cin>>a>>b;
    cout<<f(a,b);
    return 0;
}

806. 两个数的和

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
double f(double a,double b)
{
    return a+b;
}
int main(void)
{
    double a,b; cin>>a>>b;
    printf("%.2lf\n",f(a,b));
    return 0;
}

807. 区间求和

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int a,int b)
{
    int sum=0;
    for(int i=a;i<=b;i++) sum+=i;
    return sum;
}
int main(void)
{
    int a,b; cin>>a>>b;
    cout<<f(a,b)<<endl;
    return 0;
}

808. 最大公约数

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
    return b?gcd(b,a%b):a;
}
int main(void)
{
    int a,b; cin>>a>>b;
    cout<<gcd(a,b)<<endl;
    return 0;
}

809. 最小公倍数

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
    return b?gcd(b,a%b):a;
}
int f(int a,int b)
{
    return a*b/gcd(a,b);
}
int main(void)
{
    int a,b; cin>>a>>b;
    cout<<f(a,b)<<endl;
    return 0;
}

810. 绝对值

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int a)
{
    return a>0?a:-a;
}
int main(void)
{
    int a; cin>>a;
    cout<<f(a)<<endl;
    return 0;
}

811. 交换数值

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
void f(int& a,int& b)
{
    int temp=a;
    a=b;
    b=temp;
}
int main(void)
{
    int a,b; cin>>a>>b;
    f(a,b);
    cout<<a<<" "<<b;
}

812. 打印数字

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int a[1005];
void f(int k)
{
    for(int i=0;i<k;i++) cout<<a[i]<<" ";
}
int main(void)
{
    int n,k; cin>>n>>k;
    for(int i=0;i<n;i++) cin>>a[i];
    f(k);
    return 0;
}

813. 打印矩阵

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int a[105][105];
int main(void)
{
    int n,m; cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++) cin>>a[i][j],cout<<a[i][j]<<" ";
        cout<<endl;
    }
    return 0;
}

814. 复制数组

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int a[105],b[105];
int main(void)
{
    int n,m,k; cin>>n>>m>>k;
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<m;i++) cin>>b[i];
    for(int i=0;i<m;i++)
        if(i<k) cout<<a[i]<<" ";
        else cout<<b[i]<<" "; 
}

815. 打印字符串

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
int main(void)
{
    string s;
    getline(cin,s);
    cout<<s<<endl;
}

816. 数组翻转

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(void)
{
    int n,k; cin>>n>>k;
    vector<int> ve;
    for(int i=0;i<n;i++) 
    {
        int x; cin>>x;
        ve.push_back(x);
    }
    reverse(ve.begin(),ve.begin()+k);
    for(auto t:ve) cout<<t<<" ";
}

817. 数组去重

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int hush[1005];
int n,x,ans;
int main(void)
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>x,hush[x]?0:(hush[x]++,ans++);
    cout<<ans<<endl;
    return 0;
}

818. 数组排序

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int n,l,r;
int a[1005];
int main(void)
{
    cin>>n>>l>>r;
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a+l,a+r+1);
    for(int i=0;i<n;i++) cout<<a[i]<<" ";
    return 0;
}

819. 递归求阶乘

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int n)
{
    return n==1?1:n*f(n-1);
}
int main(void)
{
    int n; cin>>n;
    cout<<f(n);
}

820. 递归求斐波那契数列

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int f(int n)
{
    return (n==1||n==2)?1:f(n-1)+f(n-2);
}
int main(void)
{
    int n; cin>>n;
    cout<<f(n)<<endl;
    return 0;
}

821. 跳台阶

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int n;
int f(int n)
{
    return (n==1||n==2)?1:f(n-1)+f(n-2);
}
int main(void)
{
    cin>>n;
    cout<<f(n+1)<<endl;
    return 0;
}

822. 走方格

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
using namespace std;
int a[15][15];
int main(void)
{
    int n,m; cin>>n>>m;
    a[0][0]=1;
    for(int i=0;i<=n;i++)
    {
        for(int j=0;j<=m;j++)
        {
            if(i-1>=0) a[i][j]+=a[i-1][j];
            if(j-1>=0) a[i][j]+=a[i][j-1];
        }
    }
    cout<<a[n][m]<<endl;
    return 0;
}

823. 排列

在这里插入图片描述
题目地址

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[20];
int main(void)
{
    int n; cin>>n;
    for(int i=0;i<n;i++) a[i]=i+1;
    do
    {
        for(int i=0;i<n;i++) cout<<a[i]<<" ";
        cout<<endl;
    }while(next_permutation(a,a+n));
    return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值