洛谷 B2145 digit 函数 B2146 Hermite 多项式 题解

题目目录:

No.1 B2145 digit 函数 

No.2 B2146 Hermite 多项式 

OK,开始正文!

第一题:B2145 digit 函数

题目描述

在程序中定义一函数 digit(n,k),它能分离出整数 n 从右边数第 k 个数字。

输入格式

正整数 n 和 k。

输出格式

一个数字。

输入输出样例

输入 #1

31859 3

输出 #1

8

说明/提示

n≤10^9。

k≤10。

思路:

这里提供3种思路

思路1:

递归函数,具体见代码

思路2:

输入字符串,然后搞两下(第长度-k位)

思路3:

输入一个数,后面几位直接去掉

AC代码:

AC代码1:18行
#include<bits/stdc++.h>
using namespace std;
int sss(int n,int k)
{
    k--;
    if(!k)
    {
        return n%10;
    }
    return sss(n/10,k);
}
int main()
{
	int n,k;
    cin >> n >> k;
    cout<<sss(n,k);
	return 0;
}
AC代码2:10行
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
    int k;
    cin >> s >> k;
    cout<<s[s.size()-k];
	return 0;
}
AC代码3:11行
#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,k;
    cin >> n >> k;
    int y=pow(10,k-1);
    n/=y;
    cout<<n%10;
	return 0;
}

所以知道选哪个了吧,肯定2啊!(只有1符合题目要求,不过!AC就行,管他呢!)

第二题:B2146 Hermite 多项式

题目描述

求 Hermite 多项式的值。

 

对给定的 x 和正整数 n,求多项式的值。

输入格式

输入 n 和 x 。

输出格式

求多项式的值。

输入输出样例

输入 #1

1 2

输出 #1

4

说明/提示

(n≤8,x≤8)

思路:

递归模拟呗,只不过这形式有点恶心了......不全放一个括号里,非要另一个写下面

AC代码:

#include<bits/stdc++.h>
using namespace std;
int sss(int n,int x)
{
    if(n==0)
    {
        return 1;
    }
    else if(n==1)
    {
        return x*2;
    }
    return 2*x*sss(n-1,x)-2*(n-1)*sss(n-2,x);
}
int main()
{
    int n,x;
    cin >> n >> x;
    cout<<sss(n,x);
	return 0;
}

哦对了,不会有之前看过我文章的人不认识我了吧?对,没错,我改名了!Oh,AC!熟悉吗?不熟悉算了

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值