C
文章平均质量分 67
c语言学习,编程
yangqin@1225
精通各种操作系统的开关机!
展开
-
二叉树的常见遍历方式
遍历前序遍历void preorder(TreeNode * treeNode){ if(!treeNode) return; printf("%d ",treeNode->val); preorder(treeNode->left); preorder(treeNode->right); }中序遍历void midorder(TreeNode * treeNode){ if(!treeNode) return; midorde原创 2022-05-17 23:47:44 · 236 阅读 · 0 评论 -
#221. 抢气球
题目描述 教室的墙上挂满了气球,五颜六色,小朋友们非常喜欢。 刚一下课,小朋友们就打算去抢这些气球。每个气球在墙上都有一定的高度,只有当小朋友跳起来时,手能够到的高度大于等于气球的高度,小朋友才能摘到这个气球。为了公平起见,老师让跳的低的小朋友先摘,跳的高的小朋友后摘。小朋友都很贪心,每个小朋友在摘气球的时候都会把自己能摘的气球都摘掉。 很巧的是,小朋友们跳起来手能够着的高度都不一样,这样就不会有跳起来后高度相同的小朋友之间发生争执了。输入 第一行输入两个空格分隔的整数 n,m(1≤n,m原创 2022-05-08 09:47:46 · 452 阅读 · 4 评论 -
计数问题:1~n中x出现了多少次?
题目描述 试计算在区间 1 到 n的所有整数中,数字x (0≤x≤9)共出现了多少次? 例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。输入 2个整数n, x,之间用一个空格隔开。输出 1个整数,表示x出现的次数。分析最简单的暴力循环,非常耗时:优化方案:可以逐位分析,比如输入6573,5时。逐位分析如下:(k为从右往左数第几位)k=0时,???5 ,前三位可取范围为:[0,656] 共657种;高位恰好为657原创 2022-05-07 23:39:44 · 6230 阅读 · 5 评论 -
哥德巴赫猜想:任意一个偶数都等于两个质数之和,求质数对个数
题目描述 有一天路飞突发奇想,他有一个猜想,任意一个大于 2 的偶数好像总能写成 2 个质数的和。路飞查了资料,发现这个猜想很早就被一个叫哥德巴赫的人提出来了,称为哥德巴赫猜想。目前还没有证明这个猜想的正确性。路飞告诉你一个整数 n ,让你用这个数去验证。 注意 1 不是质数。输入输入一个偶数 n(2≤n≤8000000) 。输出输出一个整数表示有多少对 (x,y) 满足 x+y=n(x≤y) 且x,y 均为质数。样例输入110样例输出12数据规模与限定时间限制:1 s内存限原创 2022-04-28 23:14:08 · 2516 阅读 · 2 评论 -
C语言 564.寻找最近回文数
题目描述输入一个整数,找到与它的差的绝对值最小的回文数。当有两个解时,取较小的那一个解。输入输入为一行,包括一个整数 N ,整数 N 的长度在 1 到1000 之间(含 1000 )。输出输出只有一个整数,为与输入数字的差的绝对值最小的回文数。问题分析: 数据较大,应该考虑将输入转为字符串再计算#include <stdio.h>#include <string.h>int is_backnum_str(char *n){ int len = str原创 2022-04-22 17:13:48 · 2105 阅读 · 0 评论 -
输出字母沙漏
思考过程:设输入为n,行数为i,str[26]=“ABCDEFGHIJKLMNOPQRSTUVWXYZ”;首先确定输出的总行数为:2n+1每行输出的字符个数len为:2*|n-i|+1每行开始的起始位置start为:i<=n? i : 2n-i综上,两层循环搞定,外层循环遍历行数i,内存循环遍历列数j。当i在[start,start+len)时,输出字符;否则输出空格。通过观察,每行的开始位置恰好为str数组的序号,比如第一行的start为0,字母从A开始,第2行的start为1,字母..原创 2022-04-14 17:44:31 · 322 阅读 · 0 评论 -
PE-05 欧几里得算法
欧几里得算法:gcd(a,b)=gcd(b,a%b)适用场景:用于求最大公约数。#include <stdio.h>int gcd(int a, int b){ return b ? gcd(b, a % b) : a;}int lcm(int a, int b){ return a / gcd(a, b) * b;}int main(){ int a, b; while (~scanf("%d%d", &a, &b))原创 2022-04-07 16:41:00 · 442 阅读 · 0 评论 -
c语言求指定日期的前/后n天
背景:刷基础题,要求得到指定日期前后1天的日期,可推广到求前后n天的日期。大体思想是直接在day上加减得到初始值,再通过get_format_day根据各月份天数,计算格式化后的值。#include <stdio.h>int get_max_day(int y,int m){ int ans; switch(m){ case 2: ans=((y%4==0 && y%100!=0) || y%400==0)?29:28; break; case 4:原创 2022-04-07 15:57:22 · 1998 阅读 · 2 评论