- 博客(14)
- 收藏
- 关注
原创 递归函数分析
递归函数是“自己调用自己”的函数,无论是采用直接或间接调用方式。间接递归意味着函数调用另一个函数(然后可能又调用第三个函数等),最后又调用第一个函数。因为函数不可以一直不停地调用自己,所以递归函数一定具备结束条件。 递归,是函数实现的一个很重要的环节,很多程序中都或多或少的使用了递归函数。递归的意思就是函数自己调用自己本身,或者在自己函数调用的下级函数中调用自己。 递归之所以能实现,是因为函数的每个执行过程都在栈中有自己的形参和局部变量的拷贝,这些拷贝和函数的其他执行过程毫不相干。这种机制是...
2021-11-26 00:08:13 426
原创 H - 二分思想(稍简单)
蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组A中,大于等于x的最小值是多大?输入格式第一行输入两个整数n和m,分别表示数组的长度和查询的次数。接下来一行有n个整数ai。接下来m行,每行有1个整数x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出这个整数。否则输出−1。数据范围1≤n,m≤105,0≤x≤106。Sample Input1...
2021-11-24 23:58:24 163
原创 时间复杂度
定义: 在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。 计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使
2021-11-23 22:17:00 233
原创 二分法查找
二分法查找的思想是,对于已经按照从小到大的顺序排列好的 N 个数据,取出排在中间位置的数据进行比较,如果等于要找的数则查找结束;如果比要找的数大,则要找的数据一定在左边部分,则在左边数据中继续用类似的方法查找;如果比要找的数小,则在右边数据中继续用类似的方法查找。在整个过程中,查找的数据范围每次都被分成两半,因而称为二分法查找。例#include <stdio.h>#include <stdlib.h>int main(){ int str[11]={1,2
2021-11-23 22:11:20 351
原创 G - 二分法+时间复杂度(简单)
蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问整数x是否在数组A中。输入格式第一行输入两个整数n和m,分别表示数组的长度和查询的次数。接下来一行有n个整数ai。接下来m行,每行有1个整数x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出"YES",否则输出"NO"。数据范围1≤n,m≤105,0≤x≤106。Sample Input10 51 1 ...
2021-11-22 20:55:43 113
原创 F - 约瑟夫环(简单版)
传说约瑟夫当年活下来就是靠快速计算这个问题。n个人围成一圈,编号依次为 1,2,3…n。从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。输入格式两个整数n,m,1≤n,m≤100。输出格式n个用空格分隔的整数,表示出圈人的编号。Sample Input6 4Sample Output4 2 1 3 6 5两个注意点1、让数到m的人出圈。2、让游戏中的...
2021-11-21 10:48:01 2415
原创 E - 简单排序
蒜术师给了你一个10个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。输出格式按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。Sample Input4 7 3 13 11 12 0 47 34 98Sample Output47 13 11 7 3...
2021-11-19 00:16:58 414
原创 D - 暴力(稍简单)
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数n。输出格式如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围1≤n≤200。用for循环将100块钱能够买到的鸡的不同情况一一列出for(g=0;g<=n;g...
2021-11-17 19:53:17 177
原创 C - 二进制换十进制(简单)
把一个二进制数转化为十进制数。输入格式第一行一个正整数n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。Sample Input510101Sample Output21首先要了解二进制如何变为十进制方法:要从右到左用二进制的每个数去乘以2的相应次方总代码#include <stdio.h>#include <stdlib.h>int main(){ i..
2021-11-16 22:09:45 287
原创 B - 简单暴力(计算今年第几天)
请你计算出x年y月z日是x年的第几天。请注意闰年对答案的影响。输入格式一行三个整数,x,y和z。(1583≤x≤2100)。数据保证输入合法。输出格式一个整数,表示是第几天。Sample Input2016 3 1Sample Output61Sample Input 21900 3 1Sample Output 260根据月份计算日数switch(y-1) { ...
2021-11-16 00:32:58 187
原创 A - 简单排序
蒜头君给了一个长度为NN(不大于500500)的正整数序列(正整数的值不超过NN),请将其中的所有奇数取出,并按升序输出。输入格式共2行:第1行为N;第2行为N个正整数,其间用空格间隔。输出格式增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。Sample Input101 3 2 6 5 4 9 8 7 10Sample Output1,3,5,7,9首先判断所输入数据是否为奇数if(n%2!=0) ...
2021-11-14 23:14:45 362
原创 标题:逢七过
描述:一群人围坐在一圈玩报数的游戏。游戏规则是:从一开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。可是这些人都太聪明了,竟然没有人犯错!请问同样聪明的你,现在当报数到N(0<N<=10^7时,击掌共次数是多少?)输入 输出示例1 296解题思路只要用C语言去表示7的倍数或者个位为7的数for(i=1;i<N;i++) //遍历从1到n的每一个数 { if(i%7==0&&i%10...
2021-11-10 00:05:43 336
原创 计算n的阶乘
题目描述给定整数n。计算n!的值并输出。输入要求输入一个正整数n!输出要求输出n!的值。输入样例5输出样例120计算阶乘就是将这个数从一乘到自身需要使用for循环for(i=1;i<=n;i++) { sum=sum*i; }总代码:#include<stdio.h>int main(){ int n,i; int sum=1; scanf("%d",&n); f
2021-11-09 23:55:25 257
原创 最小数与数列的第一个数交换
描述输入一个正整数(1<n<100),再输入n个整数,将最小数 与第一个数交换(若最小数就在第一位,不需要交换),输出交换后的n个数【输入】第一行输入一个正整数n。第二行输入n个整数。【输出】输出交换后的n个整数。输入输出示例输入 53 5 2 8 1输出示例1 1 5 2 8 3解题思路 首先找到数组中最小的那个数for(i=1;i<n;i++) { if(min>a[i]) {...
2021-11-09 23:28:46 452
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人