建设快卡额度查询网站,中企动力邮箱客户端,nextcloud wordpress,备案 个人网站建设方案书目录 第一题分数求和 第二题#xff1a;求10 个整数中最大值
第三题#xff1a;在屏幕上输出9*9乘法口诀表
第四题#xff1a;写一个代码#xff1a;打印100~200之间的素数
第五题#xff1a;求斐波那契数的第N个数
斐波那契数的概念#xff1a;前两个数相加等于第三…目录 第一题分数求和 第二题求10 个整数中最大值
第三题在屏幕上输出9*9乘法口诀表
第四题写一个代码打印100~200之间的素数
第五题求斐波那契数的第N个数
斐波那契数的概念前两个数相加等于第三个数
斐波那契数的公式
第六题汉诺塔游戏
思路
1. 当n1时需要一步
2.当n2时需要三步
3.当n3时需要七步
总结一下
公式结论 第七题青蛙跳台阶问题 第八题数9的个数
第十题 猜数字游戏复习版本
第十一题 二分查找复习版 第一题分数求和 计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值打印出结果 将这个试子分成两部分第一部分为1/11/31/5....1/99;第二部分1/21/4.....1/100然后将这两个试子相减注意这里分数是浮点型double型是长整型浮点型
//分数求和int main() {double sum 0.0;double sub 0.0;double acc 0.0;for (int i 1; i 100; i) {if (i % 2 0) {sum (1.0 / i);}else {sub (1.0 / i);}}acc sub - sum;printf(%lf, acc); 第二题求10 个整数中最大值 //求10 个整数中最大值int main()
{int arr[10] { 1,2,3,4,5,6,7,8,9,10 };/*scanf(%d , arr);*/int i 0;int j 0;for(int i 0;i10;i){if (arr[i] arr[i 1]){j arr[i];}else{j arr[i1];}}printf(%d, j);return 0;
} 第三题在屏幕上输出9*9乘法口诀表 两层循环第一层循环用来控制乘号左边第二层循环用来控制乘号右边和每一层的个数
//在屏幕上输出9*9乘法口诀表int main()
{for(int i1;i9;i){for(int j1;ji;j){printf(%d*%d%d , j, i, j*i);}printf(\n);}return 0;
} 第四题写一个代码打印100~200之间的素数 第五题求斐波那契数的第N个数
斐波那契数的概念前两个数相加等于第三个数
1 1 2 3 5 8 13 21 34 55
斐波那契数的公式 当N2时 FibN 1 当N3时 Fib(N)Fib(N-2)Fib(N-1);2 //求斐波那契数列的第N个数int Fib(int n) {if (n 2) {return 1;}else {return Fib(n - 1) Fib(n - 2);}}int main() {int n 0;scanf(%d, n);int sum Fib(n);printf(第%d个数为%d\n, n,sum);return 0;} 第六题汉诺塔游戏
思路
1. 当n1时需要一步 2.当n2时需要三步 3.当n3时需要七步 这里我们发现为了实现第四步是完成了n2的所有步骤3步。若将黑红当一个整体。 那么我们要实现最后一步是不是也是完成相同的操作即n2时的操作。
总结一下
首先是完成一次n2时的操作 即n-1时操作的操作。
在加上一步将蓝色放入第三根柱子的操作
最后是将黑红当一个整体在完成一次n2即n-1时的操作。
公式结论 汉诺塔公式为 当n1时 要1步 当n1时 要 2*n-11步 //汉诺塔游戏
int Hanoi(int n) {if (n 1) {return 1;}else {return 1 2 * Hanoi(n - 1);}}int main() {int n 0;scanf(%d, n);int sum Hanoi(n);printf(需要%d步, sum);return 0;} 第七题青蛙跳台阶问题 问题青蛙一次可以跳一个台阶也可以一次跳2个台阶。请问如果有n个台阶时青蛙有几种方法 台阶数第一次跳一格第一次跳两格方法数11121 1223111122134111112111222211551111112111121111212221112212128nn-1n-2n-1n-2
//青蛙跳台游戏
int fac(int n) {if (n 1) {return 1;}else if(n2) {return 2;}else{return fac(n-1)fac(n-2);}}int main() {int n 0;scanf(%d, n);int sum fac(n);printf(需要%d步, sum);return 0;} 第八题数9的个数 数100以内的出现过9的数字 //数9的个数
int main() {int n 1;while (n 100) {if (n % 10 9) {printf(%d , n);}else if(n / 10 9) {printf(%d , n);}n;}return 0;
} 第十题 猜数字游戏复习版本 易错点 1. srand((unsigned int)time(NULL));随机数种子不能放在while循环里要不然每次输入数字都会生成随机的种子会导致永远猜不对数字。 2.scanf(%d, n);要放在循环里要不然每次上一次猜对的数会一直在循环里循环。 //猜数字游戏
void menu() {printf(*******************\n);printf(*******0 结束******\n);printf(*******1 开始******\n);printf(*******************\n);printf(输入0/1\n);
}int fac(int n) {srand((unsigned int)time(NULL));int nnn rand()%1001;return nnn;}int main() {menu();int n 0;int nn 0;scanf(%d, nn);srand((unsigned int)time(NULL));if (nn 1) {int sum fac(n);while (1) {printf(输入你猜的数字:);scanf(%d, n);if (n sum) {printf(猜小了\n);}else if (n sum) {printf(猜大了\n);}else {printf(猜对了);break;}}}else {printf(结束游戏);}return 0;} 第十一题 二分查找复习版
编写代码在一个整形有序数组中查找具体的某个数
要求找到了就打印数字所在的下标找不到则输出找不到。
#define _CRT_SECURE_NO_WARNINGS
#includestdlib.h
#includestdio.h
#includestring.h//二分查找
int main()
{int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int sum sizeof(arr) / sizeof(arr[0]);printf(数组有%d个\n, sum);int left 0;int right sum - 1;int n 0;printf(请输入你要查找的数:);scanf(%d, n);while (n){int mid (left (right - left)) / 2;if (n arr[mid]){right mid - 1;}else if (n arr[mid]){left mid 1;}else{printf(找到了下标为%d, arr[n]);break;}}return 0;
}