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; }