1.分离数字
2.牛牛的Hermite多项式
3. 牛牛的排列数
笔者开头感想,如今大部分高校已经开学,当然笔者也不列外!但是由于疫情的原因,笔者被迫在家上网课学习!一脸忧愁,而这恰恰给了笔者自学的机会!相信笔者会加油滴!按照时间的步伐来追寻科班的脚步!C语言练习题集册见!
1.分离数字
表示分离出 x 的后 i 位的数字。
输入两个正整数 x 和 i
输出 x 的后 i 位数字
输入:
23908 3
输出:
908
正序输出:908
- #include
- #include
- 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)
输入:
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
输入:
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;
- }