1.分离数字
2.牛牛的Hermite多项式
3. 牛牛的排列数
笔者开头感想,如今大部分高校已经开学,当然笔者也不列外!但是由于疫情的原因,笔者被迫在家上网课学习!一脸忧愁,而这恰恰给了笔者自学的机会!相信笔者会加油滴!按照时间的步伐来追寻科班的脚步!C语言练习题集册见!
1.分离数字
表示分离出 x 的后 i 位的数字。
输入描述:
输入两个正整数 x 和 i
输出描述:
输出 x 的后 i 位数字
示例1
输入:
23908 3
输出:
908
正序输出:908
#include <stdio.h>
#include <math.h>
int main ()
{
int x=0;
int i=0;
scanf("%d %d",&x,&i);
int j=0;
printf("%d",x%(int)(pow(10,i))); //必须带着 int 强制类型转换(将double转换为int)
return 0;
}
逆序输出:809
#include <stdio.h>
int main ()
{
int x=0;
int i=0;
scanf("%d %d",&x,&i);
int j=0;
for(j=0;j<i;j++)
{
printf("%d",x%10);
x=x/10;
}
//成功的打印出来结果,但是需要逆序!
return 0;
}
2.牛牛的Hermite多项式
描述
牛牛学会了一个新的多项式,叫Hermite多项式,其表达式如下,牛牛想知道其中一个结果
输入描述:
输入两个正整数,分别是 n 和 x
输出描述:
输出 h_n(x) \hn(x)
示例1
输入:
2 7
输出:
26
#include <stdio.h>
int jie(int n,int x)
{
if(n==0)
return 1;
else if(n==1)
return 2;
else
return 2*x*jie(n-1,x)-2*(n-1)*jie(n-2,x);
}
int main ()
{
int x=0;
int n=0;
scanf("%d %d",&n,&x);
printf("%d\n",jie(n,x));
return 0;
}
注意if语句中的表达式!
3. 牛牛的排列数
描述
牛牛正在尝试计算一个排列数 A_n^m = n(n-1)(n-2)...(n-m+1)= \frac{n!}{(n-m)!} \Anm=n(n−1)(n−2)...(n−m+1)=(n−m)!n!
输入描述:
输入两个正整数 n 和 m
输出描述:
输出 A_n^m \Anm
示例1
输入:
4 2
输出:
12
#include <stdio.h>
int main() {
int n = 0;
int m = 0;
scanf("%d %d", &n, &m);
long long sum1 = 1;
long long sum2 = 1;
int i = 0;
for (i = 1; i <= n; i++) {
sum1 = sum1 * i;
}
i = 0;
if (n - m > 0) {
for (i = 1; i <= (n - m); i++) {
sum2 = sum2 * i;
}
printf("%lld\n", sum1 / sum2 );
} else {
printf("0\n");
}
// printf("%lld\n", sum1 / sum2 );
return 0;
}