自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C语言回文日期

计算年份在1000≤year≤3000间,年月日构成回文数的个数例:20211202为回文数解题思路:首先判断是否年份倒数是否为合法日期,之后算出原年份的后两位对应月份与原年份的前两位对应日之后判断闰年,闰年的2月天数多一天,之后看是否能构成回文。之后输出时到5便换行,同时最后输出计时器个数.#include <stdio.h> int main() { int year, day, y, yd; int month; int h; int count = 0;

2021-12-06 07:47:50 1004

原创 递归算法

1.递归的概念若一个对象部分的包含它自己或用它自己给自己定义,则称这个对象是递归的。若一个过程直接或间接地调用自己,则称这个过程是递归过程。2.什么时候使用递归1)问题的定义是递归的如求n的阶乘等,问题的求解过程可以将其递归定义直接转换为对应的递归算法。2)数据结构是递归的如单链表等3)问题的求解方法是递归的如:是在有序数组中查找一个数据元素是否存在的折半查找算法3.递归算法的特点将问题分解成为形式上更加简单的子问题来进行求解。递归的步骤:递归算法解题通常有三个步骤:1)分析问题

2021-11-24 19:32:23 2290

原创 二分思想

蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组A中,大于等于x的最小值是多大?输入格式第一行输入两个整数n和m,分别表示数组的长度和查询的次数。接下来一行有n个整数 ai​。接下来mm行,每行有1个整数x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出这个整数。否则输出-1数据范围1≤n,m≤10^5,0≤x≤10^6。输入:10 51 1 ...

2021-11-24 19:28:02 539

原创 时间复杂度

时间复杂度是衡量一个代码好坏的基础:运行时间与占用空间。输入规模和运行环境和运行次数是决定时间复杂度的因素。如二分法查找0(logn) 所执行次数为a*logn找数组中最大/小值0(n) 所执行次数为 b*n归并排序算法0(nlogn) 所执行次数为c*nlogn如 for (i=1; i<=n; i++)   x++;  for (i=1; i<=n; i++)   for (j=1; j<=n; j++)   ...

2021-11-23 21:07:18 280

原创 二分法查找

二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下:(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。(3)如果某一步数组为空,则表示找不到目标元素。 如:mid=(low+high)/2;为的就是从中间查找,如果值小于中值那么把左边的值全部舍弃,后再去中值,如果大于那么右边的值就舍去,再去中间求值.

2021-11-23 18:28:04 696

原创 二分法+时间复杂度

蒜头君手上有个长度为n的数组A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问整数x是否在数组A中。输入格式第一行输入两个整数n和m,分别表示数组的长度和查询的次数。接下来一行有n个整数ai​。接下来m行,每行有1个整数x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出"YES",否则输出"NO"。数据范围1≤n,m≤105,0≤x≤106。输入:10 51 1 1 2 3 5 5...

2021-11-19 10:30:00 145

原创 约瑟夫环

传说约瑟夫当年活下来就是靠快速计算这个问题。n个人围成一圈,编号依次为1,2,3…n。从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈。以此类推,直到所有的人都出列。请输出依次出圈人的编号。输入格式两个整数n,m,1≤n,m≤100。输出格式n个用空格分隔的整数,表示出圈人的编号。输入:6 4输出:4 2 1 3 6 5解题思路先定义一个数组,并将他赋予为0,后输入n,m;之后用for或while循环设置一个计...

2021-11-17 18:47:21 80

原创 二进制换十进制

把一个二进制数转化为十进制数。输入格式第一行一个正整数 (1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。输入510101输出21解题思路:解题思路:从最低位(最右)算起,位上的数字乘以本位的权重,权重就百是2的第几位的位数减一次方。比如1001=9——1001=2^3+2^0=8+1=9#include<stdio.h>#include<math.h>#includ.

2021-11-16 21:41:05 69

原创 奇偶简单排序

蒜术师给了你一个10个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式输入一行,包含1010个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于100。输出格式按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。输入4 7 3 13 11 12 0 47 34 98输出47 13 11 7 3 0 4 12 34 98解题...

2021-11-16 16:56:35 445

原创 钱百鸡问题

百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100文钱买100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数n,用n文钱买n只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数nn。输出格式如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围1≤n≤200。输入:100输出:0 25 754 18 788 11 8112 4 8...

2021-11-16 16:02:08 192

原创 二进制换十进制

把一个二进制数转化为十进制数。输入格式第一行一个正整数n\ (1\le n\le 30)n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。输入510101输出21解题思路:从最低位(最右)算起,位上的数字乘以本位的权重,权重就百是2的第几位的位数减一次方。比如1001=9——1001=2^3+2^0=8+1=9#include<stdio.h>#include<math...

2021-11-14 21:01:10 560

原创 A - 简单排序

蒜头君给了一个长度为NN(不大于500500)的正整数序列(正整数的值不超过NN),请将其中的所有奇数取出,并按升序输出。输入格式共22行:第11行为NN;第22行为NN个正整数,其间用空格间隔。输出格式增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。例子输入:101 2 3 4 5 6 7 8 9 10输出:1,3,5,7,9解题思路:可以采用冒泡排序,设置两个数组,输入n,设置循环将数组输入第一个数组中并且...

2021-11-14 12:45:05 360

原创 最小值交换

题目描述:先输入n表示有n个数字,再在下一行输入这n个数。找出其中最小的数,并与第一个值交换。若第一个数为最小值则不交换。输入输出示例;输入 输出 3 3 2 1 1 2 3 5 5 9 7 8 1 1 9 7 8 5 代码:#include<stdio.h>int main(){ int n,a[100],i,x=0,min; scanf("%d\n",&amp

2021-11-09 17:04:00 297

原创 N个数的阶乘

描述输入一个数输出他的阶乘。解题思路先令sum=1,利用循环的性质,sum将循环i从1到i++的值一直乘到输入的数结束。输入实例输入 输出 5 120 #include <stdio.h>int main(){ int i,n;//定义一个数n来接受用户输入的值 int sum=1; scanf("%d",&n); for(i=1;i<=n;i++)//进入循环 sum=

2021-11-09 16:56:24 144

原创 逢七拍手

题目描述:一群人围坐成一圈玩报数的游戏。游戏规则是:从1开始报数,若遇到7的倍数或者个位为7的数则击掌代替,若犯错则要受罚。可是这些人都太聪明了,竟然没人犯错!请问同样聪明的你,现在当报数到 n 时,击掌共次数 c 是多少?输入格式:21输出格式:4#include<stdio.h>int main(){ int n,cnt=0; int sum=0; scanf("%d",&n); if(n>=70){ sum=n/70*16

2021-11-09 16:44:15 3803

原创 插入排序

描述;给出若干个数,将数字存储在数组中,然后使用插入排序,按照升序列输出数字。输入一个整数n表示n个数,接着输入这n个数。按照升序输出这n个数。输入输出示例 样例一 输入 5 3 2 4 5 4 输出 2 3 4 4 5 7 3 6 9 5 1 4 0 0 1 3 4 5 6 9 #include<stdio.h>

2021-10-23 11:07:27 280

原创 找大小

描述:首先输入整数N(0<=N<=1000),紧接着在下一行输入N个数。随后输出这一组数的最小数和最大数。提示 :输入的这N数,可以有小数也可以有负数。输出之间用换行隔开。输入输出示例; 输入 输出 示例1 5 1 5 3 22 54 1 54 #include<stdio.h>int main(void){ i

2021-10-23 10:58:32 65

原创 2021-10-23

#include<stdio.h>intmain(void){intn;scanf("%d",&n);//输入n个求最大最小n!=1if(n==1){printf("0\n0");}elseif(n>=2){doublea[n];//设置数组inti;for(i=0;i<n;i++){scanf("%lf",&a[i]);}//输入数组doublemax=a[0];//将数组第一个设为最大值...

2021-10-23 10:20:37 57

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除