1.牛牛逆序输出
2.牛牛的排列数
3.牛牛的西格玛
4. 函数实现计算一个数的阶乘
笔者开头感想,如今大部分高校已经开学,当然笔者也不列外!但是由于疫情的原因,笔者被迫在家上网课学习!一脸忧愁,而这恰恰给了笔者自学的机会!相信笔者会加油滴!按照时间的步伐来追寻科班的脚步!C语言练习题集册见!
1.牛牛逆序输出
牛牛在尝试把一个整数逆序地输出。
输入一个正整数 n。保证个位数不是 0
逆序输出这个正整数。
输入:
2345
输出:
5432
- #include
- void nixu(int n)
- {
- if(n>0)
- {
- printf("%d",n%10);
- nixu(n/10);
- }
- }
- int main ()
- {
- int n=0;
- scanf("%d",&n);
- nixu(n);
- return 0;
- }
2.牛牛的排列数
牛牛正在尝试计算一个排列数 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;
- }
3.牛牛的西格玛
牛牛最近学会了一些简单的数学运算,例如 \sum_{i=1}^{n} \∑i=1n 请你帮他模拟一下这个运算。 (即 1+2+3....+n-1+n)
输入仅一个正整数 n
请你计算 \sum_{i=1}^n \∑i=1n
输入:
4
输出:
10
- #include <stdio.h>
- int sum(int n)
- {
- if(n==0)
- return 0;
- return n+sum(n-1);
- }
- int main ()
- {
- int n=0;
- scanf("%d",&n);
- printf("%d\n",sum(n));
- return 0;
- }
4. 函数实现计算一个数的阶乘
编写一个函数 long long factorial(int n),用于计算 n 的阶乘。(要求使用递归实现)
键盘输入任意一个整数 n ,范围为 1 - 20
输出 n 的阶乘
输入:
5
输出:
120
- #include <stdio.h>
- long long su(long long n)
- {
- if(n==1)
- return n=1;
- if(n>1)
- n=n*su(n-1);
- return n;
- }
- int main ()
- {
- long long n=0;
- scanf("%lld",&n);
- printf("%lld\n",su(n));
- return 0;
- }