- 博客(17)
- 收藏
- 关注
原创 世界对称日
世界完全对称日 eg:20200202计算世界对称日共有多少天。代码如下:#include<stdio.h>int is_leapyear(int year)//判断闰年{ if((year%4==0&&year%100!=0)||(year%400==0)) return 1; else return 0;}int main(){ int m_day[]= {31,28,31,30,31,30,3.
2021-12-05 22:40:19
4001
1
原创 递归笔记(汉诺塔)
递归,就是在运行的过程中调用自己。构成递归需具备的条件:1. 子问题须与原始问题为同样的事,且更为简单;2. 不能无限制地调用本身,须有个出口,化简为非递归状况处理。汉诺塔是递归的典型例子:假如我们想将64个圆盘从A柱移动到C柱上,我们可以将其分为三个步骤:步骤1、通过一种符合要求的方式将A柱上63个圆盘从A移动到B(我们不要关心这个方式具体是什么)步骤2、经过步骤1之后A柱上只剩下一个圆盘,我们将这个圆盘从A移动到C(我们所要关心的只有最后将1个圆盘从A移动到C)步骤3、经过步骤1和步骤
2021-11-25 22:34:15
196
原创 H - 二分思想(稍简单)
蒜头君手上有个长度为nn的数组AA。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组AA中,大于等于xx的最小值是多大?输入格式第一行输入两个整数nn和mm,分别表示数组的长度和查询的次数。接下来一行有nn个整数a_iai。接下来mm行,每行有11个整数xx,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出这个整数。否则输出-1−1。数据范围1 \le n, m \le 10^5, ...
2021-11-24 22:20:43
589
原创 时间复杂度
一个算法的好坏,主要看该算法的效率.而算法的效率分为2. 一是时间效率(时间复杂度),二是空间效率(空间复杂度) 什么是时间复杂度? 在计算机科学中,算法的时间复杂度是一个函数,他定量描述了该算法的运行 时间. 随着问题规模n的不断增大,上述时间复杂度不断增大,算法的执行效率越低。 时间复杂度的:最优、平均、最差情况,为什么时间复杂度看的是最差情况? 最优:任意输入规模的最小运行次数 最差:任意输入规模的最大运行次数 平均:任意输入规模的期望运行次数 ...
2021-11-23 22:36:54
217
原创 二分法笔记
1:目标值与中间元素相等,查找结束;2:目标值比中间元素大,则把后半部分的中间元素与目标值比较;3:目标值比中间元素小,则把前半部分的中间元素与目标值比较; 这三步一直循环,直到查找结束。#include <stdio.h>int main(){ int str[11]={1,2,3,4,5,6,7,8,9,10}; int first=1,last=10,mid; int target; //输入要查找的数 sc...
2021-11-23 22:12:50
208
原创 G - 二分法+时间复杂度(简单)
蒜头君手上有个长度为nn的数组AA。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问整数xx是否在数组AA中。输入格式第一行输入两个整数nn和mm,分别表示数组的长度和查询的次数。接下来一行有nn个整数a_iai。接下来mm行,每行有11个整数xx,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出"YES",否则输出"NO"。数据范围1 \le n, m \le 10^5, 0 \le x \l...
2021-11-22 22:41:01
212
原创 F - 约瑟夫环(简单版)
传说约瑟夫当年活下来就是靠快速计算这个问题。nn个人围成一圈,编号依次为1,2,3\ldots n1,2,3…n。从第一个人开始报数,数到mm的人出列,再由下一个人重新从11开始报数,数到mm的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。输入格式两个整数n,mn,m,1\le n,m \le 1001≤n,m≤100。输出格式nn个用空格分隔的整数,表示出圈人的编号。Sample Input6 4Sample Output4 2...
2021-11-21 22:16:38
139
原创 E - 简单排序
蒜术师给了你一个1010个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式输入一行,包含1010个整数,彼此以一个空格分开,每个整数的范围是大于等于00,小于等于100100。输出格式按照要求排序后输出一行,包含排序后的1010个整数,数与数之间以一个空格分开。Sample Input4 7 3 13 11 12 0 47 34 98Sample Output47...
2021-11-18 23:27:09
191
原创 D - 暴力(稍简单)
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100100文钱买100100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数nn,用nn文钱买nn只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数nn。输出格式如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围1 \le n \le 2001≤n≤200。Sample Input100Sa...
2021-11-17 22:33:00
175
原创 C - 二进制换十进制(简单)
把一个二进制数转化为十进制数。输入格式第一行一个正整数n\ (1\le n\le 30)n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。Sample Input510101Sample Output21解题原理:x1 + x2*2 + x3*2^2 + x4*2^3每次提取一个2 得到:x1 + 2(x2+2(x3+2x4))像这样每次提取个 2代码如下:#include <std..
2021-11-16 21:39:28
382
原创 B - 简单暴力(计算今年第几天)
请你计算出xx年yy月zz日是xx年的第几天。请注意闰年对答案的影响。输入格式一行三个整数,xx,yy和zz。(1583\le x\le 21001583≤x≤2100)。数据保证输入合法。输出格式一个整数,表示是第几天。Sample Input2016 3 1Sample Output61Sample Input 21900 3 1Sample Output 260解题思路:首先要考虑这一年是平年还是闰年,其次考虑所有的月...
2021-11-15 20:01:41
194
原创 A - 简单排序
蒜头君给了一个长度为N(不大于500)的正整数序列(正整数的值不超过N),请将其中的所有奇数取出,并按升序输出。输入格式共22行:第11行为N;第22行为N个正整数,其间用空格间隔。输出格式增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。Sample Input101 3 2 6 5 4 9 8 7 10Sample Output1,3,5,7,9解题思路:本题是输入N个整数,判断出奇数,并且用增序的方式输出。...
2021-11-14 19:54:30
79
原创 最小数与数列第一个数交换
描述输入一个正整数(1<n<100),再输入n个整数,将最小数 与第一个数交换(若最小数就在第一位,不需要交换),输出交换后的n个数【输入】第一行输入一个正整数n。第二行输入n个整数。【输出】输出交换后的n个整数。示例1输入53 5 2 8 1输出1 5 2 8 3解题思路我们应先找到数组中的最小值 min=a[0]; for(i=1;i<n;i++) { if(min>a[i]) min=a[i]; }...
2021-11-09 20:11:44
584
原创 C语言:逢七过
描述:一群人围坐在一圈玩报数的游戏。游戏规则是:从一开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。可是这些人都太聪明了,竟然没有人犯错!请问同样聪明的你,现在当报数到N(0<N<=10^7时,击掌共次数是多少?)示例1输入29输出6解题思路逢七过顾名思义就是可以被七整除(i%7=0)或个位数为七(i%10=7)所以代码如下#include<stdio.h>int main(){ int N,i,a=0; s
2021-11-09 19:40:03
5318
原创 比大小笔记
一.找大小审题:1.整数 2.连续输入(循环) 3.输出max,main。int n; //用整型定义nscanf(“%d”,&n); //输入整数nif(n==1){printf("0\n0"); //如果n等于1则输出 0 0else if(n>=2) //否则如果n大于等于2时{double a[n]; //为避免a过大用double定义aint i; //用整型定义i 方便下面判断条件f...
2021-10-23 13:37:40
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人